LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: P4RegisterNode::toString[abi:cxx11]()
string P4RegisterNode::toString() {
    ostringstream oss;
    oss << "register " 
        << name_->toString() 
        << " {\n"
        << "  " << body_->toString()
        << "}\n\n";
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x1d0(%rbp), %r15
movq %r15, %rdi
callq 0x2e550
leaq 0x3feb6(%rip), %rsi     # 0x75d90
movl $0x9, %edx
movq %r15, %rdi
callq 0x2e440
movq 0x40(%r14), %rsi
movq (%rsi), %rax
leaq -0x58(%rbp), %rdi
callq *(%rax)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
leaq -0x1d0(%rbp), %rdi
callq 0x2e440
movq %rax, %r15
leaq 0x43cbd(%rip), %rsi     # 0x79bcf
movl $0x3, %edx
movq %rax, %rdi
callq 0x2e440
leaq 0x4214a(%rip), %rsi     # 0x78070
movl $0x2, %edx
movq %r15, %rdi
callq 0x2e440
movq 0x48(%r14), %rsi
movq (%rsi), %rax
leaq -0x38(%rbp), %rdi
callq *(%rax)
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq %r15, %rdi
callq 0x2e440
leaq 0x44136(%rip), %rsi     # 0x7a08d
movl $0x3, %edx
movq %rax, %rdi
callq 0x2e440
leaq -0x28(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35f76
callq 0x2e360
leaq -0x48(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35f88
callq 0x2e360
leaq -0x1c8(%rbp), %rsi
movq %rbx, %rdi
callq 0x2e660
movq 0x5800a(%rip), %rsi     # 0x8dfa8
leaq -0x1d0(%rbp), %rdi
callq 0x2e230
leaq -0x160(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x35fe7
jmp 0x35fe2
movq %rax, %rbx
leaq -0x28(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35fea
callq 0x2e360
jmp 0x35fea
movq %rax, %rbx
jmp 0x35ffc
movq %rax, %rbx
leaq -0x48(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x35ffc
callq 0x2e360
movq 0x57fa5(%rip), %rsi     # 0x8dfa8
leaq -0x1d0(%rbp), %rdi
callq 0x2e230
leaq -0x160(%rbp), %rdi
callq 0x2e150
movq %rbx, %rdi
callq 0x2e730
nop
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: NameListNode::toString[abi:cxx11]()
string NameListNode::toString() {
    if (nameList_) {
        ostringstream oss;
        oss << nameList_->toString()
            << ", "
            << name_->toString();
        return oss.str();
    } else {
        return name_->toString();
    }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
movq %rsi, %r14
movq %rdi, %rbx
cmpq $0x0, 0x40(%rsi)
je 0x3685e
leaq -0x1d0(%rbp), %rdi
callq 0x2e550
movq 0x40(%r14), %rsi
movq (%rsi), %rax
leaq -0x58(%rbp), %rdi
callq *(%rax)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
leaq -0x1d0(%rbp), %rdi
callq 0x2e440
movq %rax, %r15
leaq 0x4179f(%rip), %rsi     # 0x77f7f
movl $0x2, %edx
movq %rax, %rdi
callq 0x2e440
movq 0x48(%r14), %rsi
movq (%rsi), %rax
leaq -0x38(%rbp), %rdi
callq *(%rax)
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq %r15, %rdi
callq 0x2e440
leaq -0x28(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3681c
callq 0x2e360
leaq -0x48(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3682e
callq 0x2e360
leaq -0x1c8(%rbp), %rsi
movq %rbx, %rdi
callq 0x2e660
movq 0x57764(%rip), %rsi     # 0x8dfa8
leaq -0x1d0(%rbp), %rdi
callq 0x2e230
leaq -0x160(%rbp), %rdi
callq 0x2e150
jmp 0x3686a
movq 0x48(%r14), %rsi
movq (%rsi), %rax
movq %rbx, %rdi
callq *(%rax)
movq %rbx, %rax
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x36896
movq %rax, %rbx
leaq -0x28(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3689e
callq 0x2e360
jmp 0x3689e
jmp 0x3689b
movq %rax, %rbx
jmp 0x368b0
movq %rax, %rbx
leaq -0x48(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x368b0
callq 0x2e360
movq 0x576f1(%rip), %rsi     # 0x8dfa8
leaq -0x1d0(%rbp), %rdi
callq 0x2e230
leaq -0x160(%rbp), %rdi
callq 0x2e150
movq %rbx, %rdi
callq 0x2e730
nop
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: TableReadStmtNode::TableReadStmtNode(TableReadStmtNode::MatchType, AstNode*)
TableReadStmtNode::TableReadStmtNode(MatchType matchType, AstNode* field) {
    nodeType_ = typeid(*this).name();
    matchType_ = matchType;
    field_ = field;
    field_->parent_ = this;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdx, %r14
movl %esi, %r15d
movq %rdi, %rbx
movb $0x1, 0x8(%rdi)
addq $0x10, %rdi
leaq 0x20(%rbx), %r12
movq %r12, 0x10(%rbx)
movl $0x65736162, 0x20(%rbx) # imm = 0x65736162
movq $0x4, 0x18(%rbx)
xorl %eax, %eax
movb %al, 0x24(%rbx)
movq $0x0, 0x30(%rbx)
movb %al, 0x38(%rbx)
leaq 0x562fe(%rip), %rax     # 0x8cc20
movq %rax, (%rbx)
leaq 0x3f5f8(%rip), %rcx     # 0x75f24
movl $0x4, %edx
movl $0x13, %r8d
xorl %esi, %esi
callq 0x2e640
movl %r15d, 0x3c(%rbx)
movq %r14, 0x40(%rbx)
movq %rbx, 0x30(%r14)
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq 0x560b3(%rip), %rax     # 0x8ca10
movq %rax, (%rbx)
movq 0x10(%rbx), %rdi
cmpq %r12, %rdi
je 0x3696e
callq 0x2e360
movq %r14, %rdi
callq 0x2e730
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: TableReadStmtNode::toString[abi:cxx11]()
string TableReadStmtNode::toString() {
    ostringstream oss;
    oss << "    " << field_->toString() << " : ";
    switch(matchType_) {
        case EXACT: oss << "exact"; break;
        case TERNARY: oss << "ternary"; break;
    }
    oss << ";\n";
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x198, %rsp            # imm = 0x198
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x1b0(%rbp), %r15
movq %r15, %rdi
callq 0x2e550
leaq 0x3f40c(%rip), %rsi     # 0x75dae
movl $0x4, %edx
movq %r15, %rdi
callq 0x2e440
movq 0x40(%r14), %rsi
movq (%rsi), %rax
leaq -0x38(%rbp), %rdi
callq *(%rax)
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
leaq -0x1b0(%rbp), %rdi
callq 0x2e440
leaq 0x43365(%rip), %rsi     # 0x79d3c
movl $0x3, %edx
movq %rax, %rdi
callq 0x2e440
leaq -0x28(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x369f6
callq 0x2e360
movl 0x3c(%r14), %eax
testl %eax, %eax
je 0x36a11
cmpl $0x1, %eax
jne 0x36a29
movl $0x7, %edx
leaq 0x3f3aa(%rip), %rsi     # 0x75db9
jmp 0x36a1d
movl $0x5, %edx
leaq 0x3f396(%rip), %rsi     # 0x75db3
leaq -0x1b0(%rbp), %rdi
callq 0x2e440
leaq 0x3f3f5(%rip), %rsi     # 0x75e25
leaq -0x1b0(%rbp), %rdi
movl $0x2, %edx
callq 0x2e440
leaq -0x1a8(%rbp), %rsi
movq %rbx, %rdi
callq 0x2e660
movq 0x57551(%rip), %rsi     # 0x8dfa8
leaq -0x1b0(%rbp), %rdi
callq 0x2e230
leaq -0x140(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x198, %rsp            # imm = 0x198
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x36a99
movq %rax, %rbx
leaq -0x28(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x36a9c
callq 0x2e360
jmp 0x36a9c
movq %rax, %rbx
movq 0x57505(%rip), %rsi     # 0x8dfa8
leaq -0x1b0(%rbp), %rdi
callq 0x2e230
leaq -0x140(%rbp), %rdi
callq 0x2e150
movq %rbx, %rdi
callq 0x2e730
nop
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: TableReadStmtsNode::toString[abi:cxx11]()
string TableReadStmtsNode::toString() {
    ostringstream oss;
    for (auto rsn : *list_) {
        oss << rsn->toString();
    }
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rsi, %r14
movq %rdi, -0x30(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x2e550
movq 0x40(%r14), %rax
movq (%rax), %r12
movq 0x8(%rax), %rbx
cmpq %rbx, %r12
je 0x36b9f
leaq -0x40(%rbp), %r13
leaq -0x50(%rbp), %r14
leaq -0x1c8(%rbp), %r15
movq (%r12), %rsi
movq (%rsi), %rax
movq %r14, %rdi
callq *(%rax)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r15, %rdi
callq 0x2e440
movq -0x50(%rbp), %rdi
cmpq %r13, %rdi
je 0x36b96
callq 0x2e360
addq $0x8, %r12
cmpq %rbx, %r12
jne 0x36b6c
leaq -0x1c0(%rbp), %rsi
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
callq 0x2e660
movq 0x573ef(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x36be8
movq %rax, %rbx
jmp 0x36bfe
movq %rax, %rbx
movq -0x50(%rbp), %rdi
cmpq %r13, %rdi
je 0x36bfe
callq 0x2e360
movq 0x573a3(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %rbx, %rdi
callq 0x2e730
nop
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: TableActionStmtsNode::toString[abi:cxx11]()
string TableActionStmtsNode::toString() {
    ostringstream oss;
    for (auto asn : *list_) {
        oss << asn->toString();
    }
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rsi, %r14
movq %rdi, -0x30(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x2e550
movq 0x40(%r14), %rax
movq (%rax), %r12
movq 0x8(%rax), %rbx
cmpq %rbx, %r12
je 0x36eb9
leaq -0x40(%rbp), %r13
leaq -0x50(%rbp), %r14
leaq -0x1c8(%rbp), %r15
movq (%r12), %rsi
movq (%rsi), %rax
movq %r14, %rdi
callq *(%rax)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r15, %rdi
callq 0x2e440
movq -0x50(%rbp), %rdi
cmpq %r13, %rdi
je 0x36eb0
callq 0x2e360
addq $0x8, %r12
cmpq %rbx, %r12
jne 0x36e86
leaq -0x1c0(%rbp), %rsi
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
callq 0x2e660
movq 0x570d5(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x36f02
movq %rax, %rbx
jmp 0x36f18
movq %rax, %rbx
movq -0x50(%rbp), %rdi
cmpq %r13, %rdi
je 0x36f18
callq 0x2e360
movq 0x57089(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %rbx, %rdi
callq 0x2e730
nop
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: FieldDecsNode::toString[abi:cxx11]()
string FieldDecsNode::toString() {
    ostringstream oss;
    for (auto fdn : *list_) {
        oss << fdn->toString() << endl;
    }
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rsi, %r14
movq %rdi, -0x30(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x2e550
movq 0x40(%r14), %rax
movq (%rax), %r13
movq 0x8(%rax), %rbx
cmpq %rbx, %r13
je 0x37b0f
leaq -0x50(%rbp), %r14
leaq -0x1c8(%rbp), %r15
movq (%r13), %rsi
movq (%rsi), %rax
movq %r14, %rdi
callq *(%rax)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r15, %rdi
callq 0x2e440
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2e370
movsbl %al, %esi
movq %r12, %rdi
callq 0x2e040
movq %rax, %rdi
callq 0x2e2b0
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x37b06
callq 0x2e360
addq $0x8, %r13
cmpq %rbx, %r13
jne 0x37aae
leaq -0x1c0(%rbp), %rsi
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
callq 0x2e660
movq 0x5647f(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x37b58
movq %rax, %r14
jmp 0x37b72
movq %rax, %r14
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x37b72
callq 0x2e360
movq 0x5642f(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %r14, %rdi
callq 0x2e730
nop
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: HeaderTypeDeclarationNode::HeaderTypeDeclarationNode(AstNode*, AstNode*, AstNode*)
HeaderTypeDeclarationNode::HeaderTypeDeclarationNode(AstNode* name,
                                                     AstNode* field_decs,
                                                     AstNode* other_stmts) {
    nodeType_ = typeid(*this).name();
    name_ = dynamic_cast<NameNode*>(name);
    field_decs_ = dynamic_cast<FieldDecsNode*>(field_decs);
    other_stmts_ = other_stmts;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %r14
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %rbx
movb $0x1, 0x8(%rdi)
addq $0x10, %rdi
leaq 0x20(%rbx), %r13
movq %r13, 0x10(%rbx)
movl $0x65736162, 0x20(%rbx) # imm = 0x65736162
movq $0x4, 0x18(%rbx)
xorl %eax, %eax
movb %al, 0x24(%rbx)
movq $0x0, 0x30(%rbx)
movb %al, 0x38(%rbx)
leaq 0x5510e(%rip), %rax     # 0x8ccf8
movq %rax, (%rbx)
leaq 0x3e374(%rip), %rcx     # 0x75f68
movl $0x4, %edx
movl $0x1b, %r8d
xorl %esi, %esi
callq 0x2e640
testq %r12, %r12
je 0x37c25
leaq 0x54a9e(%rip), %rsi     # 0x8c6b0
leaq 0x54e47(%rip), %rdx     # 0x8ca60
movq %r12, %rdi
xorl %ecx, %ecx
callq 0x2e430
jmp 0x37c27
xorl %eax, %eax
movq %rax, 0x40(%rbx)
testq %r15, %r15
je 0x37c4a
leaq 0x54a79(%rip), %rsi     # 0x8c6b0
leaq 0x550c2(%rip), %rdx     # 0x8cd00
movq %r15, %rdi
xorl %ecx, %ecx
callq 0x2e430
jmp 0x37c4c
xorl %eax, %eax
movq %rax, 0x48(%rbx)
movq %r14, 0x50(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq 0x54da3(%rip), %rax     # 0x8ca10
movq %rax, (%rbx)
movq 0x10(%rbx), %rdi
cmpq %r13, %rdi
je 0x37c7e
callq 0x2e360
movq %r14, %rdi
callq 0x2e730
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: HeaderTypeDeclarationNode::toString[abi:cxx11]()
string HeaderTypeDeclarationNode::toString() {
    ostringstream oss;
    oss << "header_type " << name_->toString() << " {\n";
    oss << "  fields {\n";
    oss << field_decs_->toString();
    oss << "  }\n";
    oss << other_stmts_->toString();
    oss << "}\n\n";
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x198, %rsp            # imm = 0x198
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x1b0(%rbp), %r15
movq %r15, %rdi
callq 0x2e550
leaq 0x3e133(%rip), %rsi     # 0x75de5
movl $0xc, %edx
movq %r15, %rdi
callq 0x2e440
movq 0x40(%r14), %rsi
movq (%rsi), %rax
leaq -0x38(%rbp), %rdi
callq *(%rax)
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
leaq -0x1b0(%rbp), %rdi
callq 0x2e440
leaq 0x41ee8(%rip), %rsi     # 0x79bcf
movl $0x3, %edx
movq %rax, %rdi
callq 0x2e440
leaq -0x28(%rbp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x37d06
callq 0x2e360
leaq 0x3e0e5(%rip), %rsi     # 0x75df2
leaq -0x1b0(%rbp), %rdi
movl $0xb, %edx
callq 0x2e440
movq 0x48(%r14), %rsi
movq (%rsi), %rax
leaq -0x38(%rbp), %rdi
callq *(%rax)
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
leaq -0x1b0(%rbp), %rdi
callq 0x2e440
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x37d4d
callq 0x2e360
leaq 0x3f662(%rip), %rsi     # 0x773b6
leaq -0x1b0(%rbp), %rdi
movl $0x4, %edx
callq 0x2e440
movq 0x50(%r14), %rsi
movq (%rsi), %rax
leaq -0x38(%rbp), %rdi
callq *(%rax)
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
leaq -0x1b0(%rbp), %rdi
callq 0x2e440
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0x37d94
callq 0x2e360
leaq 0x422f2(%rip), %rsi     # 0x7a08d
leaq -0x1b0(%rbp), %rdi
movl $0x3, %edx
callq 0x2e440
leaq -0x1a8(%rbp), %rsi
movq %rbx, %rdi
callq 0x2e660
movq 0x561e6(%rip), %rsi     # 0x8dfa8
leaq -0x1b0(%rbp), %rdi
callq 0x2e230
leaq -0x140(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x198, %rsp            # imm = 0x198
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x37def
jmp 0x37e18
movq %rax, %rbx
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
jne 0x37e11
jmp 0x37e1b
jmp 0x37e18
jmp 0x37e18
movq %rax, %rbx
leaq -0x28(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x37e1b
callq 0x2e360
jmp 0x37e1b
movq %rax, %rbx
movq 0x56186(%rip), %rsi     # 0x8dfa8
leaq -0x1b0(%rbp), %rdi
callq 0x2e230
leaq -0x140(%rbp), %rdi
callq 0x2e150
movq %rbx, %rdi
callq 0x2e730
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: ArgsNode::deepCopy()
ArgsNode* ArgsNode::deepCopy() {
    auto newNode = new ArgsNode();
    for (auto bw : *list_) {
        auto newArg = bw->deepCopy();
        newNode->push_back(newArg);
    }

    return newNode;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %rbx
movq %rax, %rdi
callq 0x382be
movq 0x40(%r14), %rax
movq (%rax), %r14
movq 0x8(%rax), %r15
cmpq %r15, %r14
je 0x3836b
movq (%r14), %rdi
callq 0x34fbe
movq %rbx, %rdi
movq %rax, %rsi
callq 0x326a4
addq $0x8, %r14
jmp 0x3834d
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x2e360
movq %r14, %rdi
callq 0x2e730
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: ArgsNode::toString[abi:cxx11]()
string ArgsNode::toString() {
    bool first = true;
    ostringstream oss;
    for (auto bw : *list_) {
        if (first) {
            first = false;
        } else {
            oss << ", ";
        }
        oss << bw->toString();
    }
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rsi, %r14
movq %rdi, -0x30(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x2e550
movq 0x40(%r14), %rax
movq (%rax), %rbx
movq 0x8(%rax), %r12
cmpq %r12, %rbx
je 0x38424
movb $0x1, %al
leaq -0x50(%rbp), %r14
leaq -0x1c8(%rbp), %r15
movq (%rbx), %r13
testb $0x1, %al
jne 0x383eb
movl $0x2, %edx
movq %r15, %rdi
leaq 0x3fb99(%rip), %rsi     # 0x77f7f
callq 0x2e440
movq (%r13), %rax
movq %r14, %rdi
movq %r13, %rsi
callq *(%rax)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r15, %rdi
callq 0x2e440
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x38419
callq 0x2e360
addq $0x8, %rbx
xorl %eax, %eax
cmpq %r12, %rbx
jne 0x383d0
leaq -0x1c0(%rbp), %rsi
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
callq 0x2e660
movq 0x55b6a(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3846f
jmp 0x3846f
movq %rax, %rbx
jmp 0x38489
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x38489
callq 0x2e360
movq 0x55b18(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %rbx, %rdi
callq 0x2e730
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: ActionParamNode::deepCopy()
ActionParamNode* ActionParamNode::deepCopy() {
    AstNode* newParam = param_;
    if (param_->nodeType_.find("MblRefNode") != string::npos) {
        newParam = dynamic_cast<MblRefNode*>(param_)->deepCopy();
    }
    auto newNode = new ActionParamNode(newParam);
    return newNode;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %r14
movq 0x40(%rdi), %rbx
leaq 0x10(%rbx), %rdi
leaq 0x3d8af(%rip), %rsi     # 0x75e10
movl $0xa, %ecx
xorl %edx, %edx
callq 0x2e710
cmpq $-0x1, %rax
je 0x38597
movq 0x40(%r14), %rdi
leaq 0x54132(%rip), %rsi     # 0x8c6b0
leaq 0x54f73(%rip), %rdx     # 0x8d4f8
xorl %ecx, %ecx
callq 0x2e430
movq %rax, %rdi
callq 0x3dee6
movq %rax, %rbx
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x384b0
movq %r14, %rax
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %rbx
movq %r14, %rdi
callq 0x2e360
movq %rbx, %rdi
callq 0x2e730
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: ActionParamsNode::deepCopy()
ActionParamsNode* ActionParamsNode::deepCopy() {
    auto newNode = new ActionParamsNode();
    for (auto ap : *list_) {
        auto newParam = ap->deepCopy();
        newNode->push_back(newParam);
    }

    return newNode;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %rbx
movq %rax, %rdi
callq 0x385e6
movq 0x40(%r14), %rax
movq (%rax), %r14
movq 0x8(%rax), %r15
cmpq %r15, %r14
je 0x38693
movq (%r14), %rdi
callq 0x38548
movq %rbx, %rdi
movq %rax, %rsi
callq 0x32610
addq $0x8, %r14
jmp 0x38675
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x2e360
movq %r14, %rdi
callq 0x2e730
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: ActionParamsNode::toString[abi:cxx11]()
string ActionParamsNode::toString(){
    bool first = true;
    ostringstream oss;
    for (auto ap : *list_) {
        if (first) {
            first = false;
        } else {
            oss << ", ";
        }
        oss << ap->toString();
    }
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rsi, %r14
movq %rdi, -0x30(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x2e550
movq 0x40(%r14), %rax
movq (%rax), %rbx
movq 0x8(%rax), %r12
cmpq %r12, %rbx
je 0x3874c
movb $0x1, %al
leaq -0x50(%rbp), %r14
leaq -0x1c8(%rbp), %r15
movq (%rbx), %r13
testb $0x1, %al
jne 0x38713
movl $0x2, %edx
movq %r15, %rdi
leaq 0x3f871(%rip), %rsi     # 0x77f7f
callq 0x2e440
movq (%r13), %rax
movq %r14, %rdi
movq %r13, %rsi
callq *(%rax)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r15, %rdi
callq 0x2e440
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x38741
callq 0x2e360
addq $0x8, %rbx
xorl %eax, %eax
cmpq %r12, %rbx
jne 0x386f8
leaq -0x1c0(%rbp), %rsi
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
callq 0x2e660
movq 0x55842(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x38797
jmp 0x38797
movq %rax, %rbx
jmp 0x387b1
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x387b1
callq 0x2e360
movq 0x557f0(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %rbx, %rdi
callq 0x2e730
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: ActionStmtNode::ActionStmtNode(AstNode*, AstNode*, ActionStmtNode::ActionStmtType, AstNode*, AstNode*)
ActionStmtNode::ActionStmtNode(AstNode* name1, AstNode* args, ActionStmtType type, AstNode* name2, AstNode* index) {
    nodeType_ = typeid(*this).name();
    name1_ = dynamic_cast<NameNode*>(name1);
    name2_ = dynamic_cast<NameNode*>(name2);
    if(args) {
        args_ = dynamic_cast<ArgsNode*>(args);
        args_->parent_ = this;
    }

    index_ = dynamic_cast<IntegerNode*>(index);
    type_ = type;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r9, -0x38(%rbp)
movq %r8, %r13
movl %ecx, -0x2c(%rbp)
movq %rdx, %r12
movq %rsi, %r14
movq %rdi, %rbx
movb $0x1, 0x8(%rdi)
addq $0x10, %rdi
leaq 0x20(%rbx), %r15
movq %r15, 0x10(%rbx)
movl $0x65736162, 0x20(%rbx) # imm = 0x65736162
movq $0x4, 0x18(%rbx)
xorl %eax, %eax
movb %al, 0x24(%rbx)
movq $0x0, 0x30(%rbx)
movb %al, 0x38(%rbx)
leaq 0x5456e(%rip), %rax     # 0x8cda0
movq %rax, (%rbx)
leaq 0x3d786(%rip), %rcx     # 0x75fc2
movl $0x4, %edx
movl $0x10, %r8d
xorl %esi, %esi
callq 0x2e640
testq %r14, %r14
je 0x3886d
leaq 0x53e56(%rip), %rsi     # 0x8c6b0
leaq 0x541ff(%rip), %rdx     # 0x8ca60
movq %r14, %rdi
xorl %ecx, %ecx
callq 0x2e430
jmp 0x3886f
xorl %eax, %eax
movq %rax, 0x40(%rbx)
testq %r13, %r13
je 0x38892
leaq 0x53e31(%rip), %rsi     # 0x8c6b0
leaq 0x541da(%rip), %rdx     # 0x8ca60
movq %r13, %rdi
xorl %ecx, %ecx
callq 0x2e430
jmp 0x38894
xorl %eax, %eax
movq %rax, 0x48(%rbx)
testq %r12, %r12
je 0x388bd
leaq 0x53e0c(%rip), %rsi     # 0x8c6b0
leaq 0x544fd(%rip), %rdx     # 0x8cda8
movq %r12, %rdi
xorl %ecx, %ecx
callq 0x2e430
movq %rax, 0x58(%rbx)
movq %rbx, 0x30(%rax)
movq -0x38(%rbp), %rdi
testq %rdi, %rdi
je 0x388dd
leaq 0x53de3(%rip), %rsi     # 0x8c6b0
leaq 0x5424c(%rip), %rdx     # 0x8cb20
xorl %ecx, %ecx
callq 0x2e430
jmp 0x388df
xorl %eax, %eax
movq %rax, 0x50(%rbx)
movl -0x2c(%rbp), %eax
movl %eax, 0x3c(%rbx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq 0x5410e(%rip), %rax     # 0x8ca10
movq %rax, (%rbx)
movq 0x10(%rbx), %rdi
cmpq %r15, %rdi
je 0x38913
callq 0x2e360
movq %r14, %rdi
callq 0x2e730
nop
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: ActionStmtsNode::deepCopy()
ActionStmtsNode* ActionStmtsNode::deepCopy() {
    auto newNode = new ActionStmtsNode();
    for (auto as : *list_) {
        auto newStmt = as->deepCopy();
        newNode->push_back(newStmt);
    }

    return newNode;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %rbx
movq %rax, %rdi
callq 0x38bfc
movq 0x40(%r14), %rax
movq (%rax), %r14
movq 0x8(%rax), %r15
cmpq %r15, %r14
je 0x38ca9
movq (%r14), %rdi
callq 0x3891c
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3265a
addq $0x8, %r14
jmp 0x38c8b
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x2e360
movq %r14, %rdi
callq 0x2e730
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: ActionStmtsNode::toString[abi:cxx11]()
string ActionStmtsNode::toString() {
    ostringstream oss;
    for (auto as : *list_) {
        oss << as->toString();
    }
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rsi, %r14
movq %rdi, -0x30(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x2e550
movq 0x40(%r14), %rax
movq (%rax), %r12
movq 0x8(%rax), %rbx
cmpq %rbx, %r12
je 0x38d43
leaq -0x40(%rbp), %r13
leaq -0x50(%rbp), %r14
leaq -0x1c8(%rbp), %r15
movq (%r12), %rsi
movq (%rsi), %rax
movq %r14, %rdi
callq *(%rax)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r15, %rdi
callq 0x2e440
movq -0x50(%rbp), %rdi
cmpq %r13, %rdi
je 0x38d3a
callq 0x2e360
addq $0x8, %r12
cmpq %rbx, %r12
jne 0x38d10
leaq -0x1c0(%rbp), %rsi
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
callq 0x2e660
movq 0x5524b(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x38d8c
movq %rax, %rbx
jmp 0x38da2
movq %rax, %rbx
movq -0x50(%rbp), %rdi
cmpq %r13, %rdi
je 0x38da2
callq 0x2e360
movq 0x551ff(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %rbx, %rdi
callq 0x2e730
nop
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: ActionNode::ActionNode(AstNode*, AstNode*, AstNode*)
ActionNode::ActionNode(AstNode* name, AstNode* params, AstNode* stmts) {
    nodeType_ = typeid(*this).name();
    name_ = dynamic_cast<NameNode*>(name);
    name_->parent_ = this;
    params_ = dynamic_cast<ActionParamsNode*>(params);
    params_->parent_ = this;
    stmts_ = dynamic_cast<ActionStmtsNode*>(stmts);
    stmts_->parent_ = this;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %r14
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %rbx
movb $0x1, 0x8(%rdi)
addq $0x10, %rdi
leaq 0x20(%rbx), %r13
movq %r13, 0x10(%rbx)
movl $0x65736162, 0x20(%rbx) # imm = 0x65736162
movq $0x4, 0x18(%rbx)
xorl %eax, %eax
movb %al, 0x24(%rbx)
movq $0x0, 0x30(%rbx)
movb %al, 0x38(%rbx)
leaq 0x53fce(%rip), %rax     # 0x8cde8
movq %rax, (%rbx)
leaq 0x3d1af(%rip), %rcx     # 0x75fd3
movl $0x4, %edx
movl $0xc, %r8d
xorl %esi, %esi
callq 0x2e640
leaq 0x53873(%rip), %r13     # 0x8c6b0
leaq 0x53c1c(%rip), %rdx     # 0x8ca60
movq %r12, %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x2e430
movq %rax, 0x40(%rbx)
movq %rbx, 0x30(%rax)
leaq 0x53f90(%rip), %rdx     # 0x8cdf0
movq %r15, %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x2e430
movq %rax, 0x48(%rbx)
movq %rbx, 0x30(%rax)
leaq 0x53f8c(%rip), %rdx     # 0x8ce08
movq %r14, %rdi
movq %r13, %rsi
xorl %ecx, %ecx
callq 0x2e430
movq %rax, 0x50(%rbx)
movq %rbx, 0x30(%rax)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq 0x53b66(%rip), %rax     # 0x8ca10
movq %rax, (%rbx)
movq 0x10(%rbx), %rdi
cmpq %r13, %rdi
je 0x38ebb
callq 0x2e360
movq %r14, %rdi
callq 0x2e730
nop
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4.cpp
// Function: ActionNode::toString[abi:cxx11]()
string ActionNode::toString() {
    ostringstream oss;
    oss << "action " << name_->toString()
                     << "(" << params_->toString() << ") {\n"
        << stmts_->toString()
        << "}\n";
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x1d8, %rsp            # imm = 0x1D8
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x1f0(%rbp), %r15
movq %r15, %rdi
callq 0x2e550
leaq 0x3d2fb(%rip), %rsi     # 0x762b3
movl $0x7, %edx
movq %r15, %rdi
callq 0x2e440
movq 0x40(%r14), %rsi
movq (%rsi), %rax
leaq -0x78(%rbp), %rdi
callq *(%rax)
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
leaq -0x1f0(%rbp), %rdi
callq 0x2e440
movq %rax, %r15
leaq 0x40bd1(%rip), %rsi     # 0x79bc1
movl $0x1, %edx
movq %rax, %rdi
callq 0x2e440
movq 0x48(%r14), %rsi
movq (%rsi), %rax
leaq -0x58(%rbp), %rdi
callq *(%rax)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq %r15, %rdi
callq 0x2e440
movq %rax, %r15
leaq 0x40baa(%rip), %rsi     # 0x79bce
movl $0x4, %edx
movq %rax, %rdi
callq 0x2e440
movq 0x50(%r14), %rsi
movq (%rsi), %rax
leaq -0x38(%rbp), %rdi
callq *(%rax)
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq %r15, %rdi
callq 0x2e440
leaq 0x3d68c(%rip), %rsi     # 0x766e1
movl $0x2, %edx
movq %rax, %rdi
callq 0x2e440
leaq -0x28(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x39074
callq 0x2e360
leaq -0x48(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x39086
callq 0x2e360
leaq -0x68(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x39098
callq 0x2e360
leaq -0x1e8(%rbp), %rsi
movq %rbx, %rdi
callq 0x2e660
movq 0x54efa(%rip), %rsi     # 0x8dfa8
leaq -0x1f0(%rbp), %rdi
callq 0x2e230
leaq -0x180(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x1d8, %rsp            # imm = 0x1D8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x390f4
jmp 0x39110
jmp 0x3910b
movq %rax, %rbx
leaq -0x28(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x390f7
callq 0x2e360
jmp 0x390f7
movq %rax, %rbx
leaq -0x48(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x39113
callq 0x2e360
jmp 0x39113
movq %rax, %rbx
jmp 0x39125
movq %rax, %rbx
leaq -0x68(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x39125
callq 0x2e360
movq 0x54e7c(%rip), %rsi     # 0x8dfa8
leaq -0x1f0(%rbp), %rdi
callq 0x2e230
leaq -0x180(%rbp), %rdi
callq 0x2e150
movq %rbx, %rdi
callq 0x2e730
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4r.cpp
// Function: P4RMalleableValueNode::toString[abi:cxx11]()
string P4RMalleableValueNode::toString() {
    if (removed_) {
        return "";
    }

    ostringstream oss;
    oss << "Malleable value " << name_->toString() << " {\n" 
        << " " << varWidth_->toString() << "\n"
        << " " << varInit_->toString() << "\n"
        << "}";
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x1d8, %rsp            # imm = 0x1D8
movq %rdi, %rbx
cmpb $0x1, 0x38(%rsi)
jne 0x3c189
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x3b762(%rip), %rdx     # 0x778db
movq %rbx, %rdi
movq %rdx, %rsi
callq 0x32e40
jmp 0x3c2ef
movq %rsi, %r14
leaq -0x1f0(%rbp), %r15
movq %r15, %rdi
callq 0x2e550
leaq 0x3a0ba(%rip), %rsi     # 0x7625c
movl $0x10, %edx
movq %r15, %rdi
callq 0x2e440
movq 0x40(%r14), %rsi
movq (%rsi), %rax
leaq -0x78(%rbp), %rdi
callq *(%rax)
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
leaq -0x1f0(%rbp), %rdi
callq 0x2e440
movq %rax, %r15
leaq 0x3d9f5(%rip), %rsi     # 0x79bcf
movl $0x3, %edx
movq %rax, %rdi
callq 0x2e440
leaq 0x3be83(%rip), %rsi     # 0x78071
movl $0x1, %edx
movq %r15, %rdi
callq 0x2e440
movq 0x48(%r14), %rsi
movq (%rsi), %rax
leaq -0x58(%rbp), %rdi
callq *(%rax)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq %r15, %rdi
callq 0x2e440
movq %rax, %r15
leaq 0x39ba2(%rip), %rsi     # 0x75dc4
movl $0x1, %edx
movq %rax, %rdi
callq 0x2e440
leaq 0x3be3b(%rip), %rsi     # 0x78071
movl $0x1, %edx
movq %r15, %rdi
callq 0x2e440
movq 0x50(%r14), %rsi
movq (%rsi), %rax
leaq -0x38(%rbp), %rdi
callq *(%rax)
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq %r15, %rdi
callq 0x2e440
movq %rax, %r14
leaq 0x39b5a(%rip), %rsi     # 0x75dc4
movl $0x1, %edx
movq %rax, %rdi
callq 0x2e440
leaq 0x3ba52(%rip), %rsi     # 0x77cd0
movl $0x1, %edx
movq %r14, %rdi
callq 0x2e440
leaq -0x28(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3c29d
callq 0x2e360
leaq -0x48(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3c2af
callq 0x2e360
leaq -0x68(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3c2c1
callq 0x2e360
leaq -0x1e8(%rbp), %rsi
movq %rbx, %rdi
callq 0x2e660
movq 0x51cd1(%rip), %rsi     # 0x8dfa8
leaq -0x1f0(%rbp), %rdi
callq 0x2e230
leaq -0x180(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x1d8, %rsp            # imm = 0x1D8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3c322
jmp 0x3c339
jmp 0x3c306
movq %rax, %rbx
jmp 0x3c34e
movq %rax, %rbx
leaq -0x28(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3c325
callq 0x2e360
jmp 0x3c325
movq %rax, %rbx
leaq -0x48(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3c33c
callq 0x2e360
jmp 0x3c33c
movq %rax, %rbx
leaq -0x68(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3c34e
callq 0x2e360
movq 0x51c53(%rip), %rsi     # 0x8dfa8
leaq -0x1f0(%rbp), %rdi
callq 0x2e230
leaq -0x180(%rbp), %rdi
callq 0x2e150
movq %rbx, %rdi
callq 0x2e730
nop
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4r.cpp
// Function: FieldNode::toString[abi:cxx11]()
string FieldNode::toString() {
    ostringstream oss;
    oss << headerName_->toString()
        << "."
        << fieldName_->toString();
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x1d0(%rbp), %rdi
callq 0x2e550
movq 0x40(%r14), %rsi
movq (%rsi), %rax
leaq -0x58(%rbp), %rdi
callq *(%rax)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
leaq -0x1d0(%rbp), %rdi
callq 0x2e440
movq %rax, %r15
leaq 0x3b48a(%rip), %rsi     # 0x77929
movl $0x1, %edx
movq %rax, %rdi
callq 0x2e440
movq 0x48(%r14), %rsi
movq (%rsi), %rax
leaq -0x38(%rbp), %rdi
callq *(%rax)
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq %r15, %rdi
callq 0x2e440
leaq -0x28(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3c4db
callq 0x2e360
leaq -0x48(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3c4ed
callq 0x2e360
leaq -0x1c8(%rbp), %rsi
movq %rbx, %rdi
callq 0x2e660
movq 0x51aa5(%rip), %rsi     # 0x8dfa8
leaq -0x1d0(%rbp), %rdi
callq 0x2e230
leaq -0x160(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3c547
movq %rax, %rbx
leaq -0x28(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3c54f
callq 0x2e360
jmp 0x3c54f
jmp 0x3c54c
movq %rax, %rbx
jmp 0x3c561
movq %rax, %rbx
leaq -0x48(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3c561
callq 0x2e360
movq 0x51a40(%rip), %rsi     # 0x8dfa8
leaq -0x1d0(%rbp), %rdi
callq 0x2e230
leaq -0x160(%rbp), %rdi
callq 0x2e150
movq %rbx, %rdi
callq 0x2e730
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4r.cpp
// Function: FieldsNode::toString[abi:cxx11]()
string FieldsNode::toString() {
    bool first = true;
    ostringstream oss;

    for (auto fld : *this->list_) {
        if (first) {
            first = false;
        } else {
            oss << ", ";
        }
        oss << fld->toString();
    }
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rsi, %r14
movq %rdi, -0x30(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x2e550
movq 0x40(%r14), %rax
movq (%rax), %rbx
movq 0x8(%rax), %r12
cmpq %r12, %rbx
je 0x3c682
movb $0x1, %al
leaq -0x50(%rbp), %r14
leaq -0x1c8(%rbp), %r15
movq (%rbx), %r13
testb $0x1, %al
jne 0x3c649
movl $0x2, %edx
movq %r15, %rdi
leaq 0x3b93b(%rip), %rsi     # 0x77f7f
callq 0x2e440
movq (%r13), %rax
movq %r14, %rdi
movq %r13, %rsi
callq *(%rax)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r15, %rdi
callq 0x2e440
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x3c677
callq 0x2e360
addq $0x8, %rbx
xorl %eax, %eax
cmpq %r12, %rbx
jne 0x3c62e
leaq -0x1c0(%rbp), %rsi
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
callq 0x2e660
movq 0x5190c(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3c6cd
jmp 0x3c6cd
movq %rax, %rbx
jmp 0x3c6e7
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x3c6e7
callq 0x2e360
movq 0x518ba(%rip), %rsi     # 0x8dfa8
leaq -0x1c8(%rbp), %rdi
callq 0x2e230
leaq -0x158(%rbp), %rdi
callq 0x2e150
movq %rbx, %rdi
callq 0x2e730
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4r.cpp
// Function: P4RMalleableFieldNode::mapAltToInt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
int P4RMalleableFieldNode::mapAltToInt(std::string input) {
    int val_int = 0;
    for (FieldNode* alt : *varAlts_->fields_->list_) {
        if (alt->toString().compare(input)==0) {
            return val_int;
        } else {
            val_int += 1;
        }
    }
    return -1;    
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rsi, -0x30(%rbp)
movq 0x58(%rdi), %rax
movq 0x40(%rax), %rax
movq 0x40(%rax), %rax
movq (%rax), %r13
movq 0x8(%rax), %rbx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rbx, %r13
je 0x3ccc7
xorl %r14d, %r14d
leaq -0x50(%rbp), %r15
movq (%r13), %rsi
movq (%rsi), %rax
movq %r15, %rdi
callq *(%rax)
movq %r15, %rdi
movq -0x30(%rbp), %rsi
callq 0x2e050
movl %eax, %r12d
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x3ccac
callq 0x2e360
testl %r12d, %r12d
je 0x3ccc4
incl %r14d
addq $0x8, %r13
cmpq %rbx, %r13
jne 0x3cc7f
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0x3ccc7
movl %r14d, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x3cceb
callq 0x2e360
movq %rbx, %rdi
callq 0x2e730
nop
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4r.cpp
// Function: P4RMalleableTableNode::P4RMalleableTableNode(AstNode*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
P4RMalleableTableNode::P4RMalleableTableNode(AstNode* table, std::string pragma) {
    nodeType_ = typeid(*this).name();
    table_ = dynamic_cast<TableNode*>(table);

    pragmaTransformed_ = false;
    pragma_ = pragma;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rsi, %r12
movq %rdi, %rbx
movb $0x1, 0x8(%rdi)
addq $0x10, %rdi
leaq 0x20(%rbx), %rax
movq %rax, -0x30(%rbp)
movq %rax, 0x10(%rbx)
movl $0x65736162, 0x20(%rbx) # imm = 0x65736162
movq $0x4, 0x18(%rbx)
xorl %eax, %eax
movb %al, 0x24(%rbx)
movq %rax, 0x30(%rbx)
movb %al, 0x38(%rbx)
leaq 0x505e7(%rip), %rcx     # 0x8d328
movq %rcx, (%rbx)
leaq 0x50(%rbx), %r15
leaq 0x60(%rbx), %r13
movq %r13, 0x50(%rbx)
movq %rax, 0x58(%rbx)
movb %al, 0x60(%rbx)
leaq 0x395c3(%rip), %rcx     # 0x76321
movl $0x4, %edx
movl $0x17, %r8d
xorl %esi, %esi
callq 0x2e640
testq %r12, %r12
je 0x3cd8f
leaq 0x4f934(%rip), %rsi     # 0x8c6b0
leaq 0x50145(%rip), %rdx     # 0x8cec8
movq %r12, %rdi
xorl %ecx, %ecx
callq 0x2e430
jmp 0x3cd91
xorl %eax, %eax
movq %rax, 0x40(%rbx)
movb $0x0, 0x48(%rbx)
movq %r15, %rdi
movq %r14, %rsi
callq 0x2e240
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq (%r15), %rdi
cmpq %r13, %rdi
je 0x3cdc3
callq 0x2e360
leaq 0x4fc46(%rip), %rax     # 0x8ca10
movq %rax, (%rbx)
movq 0x10(%rbx), %rdi
cmpq -0x30(%rbp), %rdi
je 0x3cddc
callq 0x2e360
movq %r14, %rdi
callq 0x2e730
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4r.cpp
// Function: P4RMalleableTableNode::toString[abi:cxx11]()
string P4RMalleableTableNode::toString() {
    ostringstream oss;
    if(pragma_.compare("")!=0) {
        oss << pragma_ << "\n";
    }
        
    if (!removed_) {
        oss << " malleable ";
    }

    oss << table_->toString();
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x1a0, %rsp            # imm = 0x1A0
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x1a8(%rbp), %rdi
callq 0x2e550
leaq 0x50(%r14), %rdi
leaq 0x3a824(%rip), %rsi     # 0x778db
callq 0x2e0f0
testl %eax, %eax
je 0x3d0e8
movq 0x50(%r14), %rsi
movq 0x58(%r14), %rdx
leaq -0x1a8(%rbp), %rdi
callq 0x2e440
leaq 0x38ce9(%rip), %rsi     # 0x75dc4
movl $0x1, %edx
movq %rax, %rdi
callq 0x2e440
cmpb $0x0, 0x38(%r14)
jne 0x3d107
leaq 0x39190(%rip), %rsi     # 0x76286
leaq -0x1a8(%rbp), %rdi
movl $0xb, %edx
callq 0x2e440
movq 0x40(%r14), %rsi
movq (%rsi), %rax
leaq -0x30(%rbp), %rdi
callq *(%rax)
movq -0x30(%rbp), %rsi
movq -0x28(%rbp), %rdx
leaq -0x1a8(%rbp), %rdi
callq 0x2e440
leaq -0x20(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3d13a
callq 0x2e360
leaq -0x1a0(%rbp), %rsi
movq %rbx, %rdi
callq 0x2e660
movq 0x50e58(%rip), %rsi     # 0x8dfa8
leaq -0x1a8(%rbp), %rdi
callq 0x2e230
leaq -0x138(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %rbx
leaq -0x20(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3d193
callq 0x2e360
jmp 0x3d193
jmp 0x3d190
movq %rax, %rbx
movq 0x50e0e(%rip), %rsi     # 0x8dfa8
leaq -0x1a8(%rbp), %rdi
callq 0x2e230
leaq -0x138(%rbp), %rdi
callq 0x2e150
movq %rbx, %rdi
callq 0x2e730
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4r.cpp
// Function: P4RInitBlockNode::P4RInitBlockNode(AstNode*, AstNode*)
P4RInitBlockNode::P4RInitBlockNode(AstNode* name, AstNode* body) {
    nodeType_ = typeid(*this).name();
    name_ = dynamic_cast<NameNode*>(name);
    name_->parent_ = this;
    body_ = dynamic_cast<BodyNode*>(body);
    body_->parent_ = this;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
movb $0x1, 0x8(%rdi)
addq $0x10, %rdi
leaq 0x20(%rbx), %r12
movq %r12, 0x10(%rbx)
movl $0x65736162, 0x20(%rbx) # imm = 0x65736162
movq $0x4, 0x18(%rbx)
xorl %eax, %eax
movb %al, 0x24(%rbx)
movq $0x0, 0x30(%rbx)
movb %al, 0x38(%rbx)
leaq 0x4fe1e(%rip), %rax     # 0x8d370
movq %rax, (%rbx)
leaq 0x38dfa(%rip), %rcx     # 0x76356
movl $0x4, %edx
movl $0x12, %r8d
xorl %esi, %esi
callq 0x2e640
leaq 0x4f13b(%rip), %r12     # 0x8c6b0
leaq 0x4f4e4(%rip), %rdx     # 0x8ca60
movq %r15, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x2e430
movq %rax, 0x40(%rbx)
movq %rbx, 0x30(%rax)
leaq 0x4f600(%rip), %rdx     # 0x8cb98
movq %r14, %rdi
movq %r12, %rsi
xorl %ecx, %ecx
callq 0x2e430
movq %rax, 0x48(%rbx)
movq %rbx, 0x30(%rax)
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq 0x4f450(%rip), %rax     # 0x8ca10
movq %rax, (%rbx)
movq 0x10(%rbx), %rdi
cmpq %r12, %rdi
je 0x3d5d1
callq 0x2e360
movq %r14, %rdi
callq 0x2e730
nop
// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/ast/ast_nodes_p4r.cpp
// Function: P4RInitBlockNode::toString[abi:cxx11]()
string P4RInitBlockNode::toString() {
    if (removed_) {
        return "";
    }

    ostringstream oss;
    oss << "initialization " 
        << name_->toString()
        << " {\n"
        << body_->toString()
        << "}";
    return oss.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
movq %rdi, %rbx
cmpb $0x1, 0x38(%rsi)
jne 0x3d611
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x3a2da(%rip), %rdx     # 0x778db
movq %rbx, %rdi
movq %rdx, %rsi
callq 0x32e40
jmp 0x3d6f2
movq %rsi, %r14
leaq -0x1d0(%rbp), %r15
movq %r15, %rdi
callq 0x2e550
leaq 0x38c77(%rip), %rsi     # 0x762a1
movl $0xf, %edx
movq %r15, %rdi
callq 0x2e440
movq 0x40(%r14), %rsi
movq (%rsi), %rax
leaq -0x58(%rbp), %rdi
callq *(%rax)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
leaq -0x1d0(%rbp), %rdi
callq 0x2e440
movq %rax, %r15
leaq 0x3c56d(%rip), %rsi     # 0x79bcf
movl $0x3, %edx
movq %rax, %rdi
callq 0x2e440
movq 0x48(%r14), %rsi
movq (%rsi), %rax
leaq -0x38(%rbp), %rdi
callq *(%rax)
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq %r15, %rdi
callq 0x2e440
leaq 0x3a63d(%rip), %rsi     # 0x77cd0
movl $0x1, %edx
movq %rax, %rdi
callq 0x2e440
leaq -0x28(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3d6b2
callq 0x2e360
leaq -0x48(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3d6c4
callq 0x2e360
leaq -0x1c8(%rbp), %rsi
movq %rbx, %rdi
callq 0x2e660
movq 0x508ce(%rip), %rsi     # 0x8dfa8
leaq -0x1d0(%rbp), %rdi
callq 0x2e230
leaq -0x160(%rbp), %rdi
callq 0x2e150
movq %rbx, %rax
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3d723
jmp 0x3d71e
movq %rax, %rbx
leaq -0x28(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3d726
callq 0x2e360
jmp 0x3d726
movq %rax, %rbx
jmp 0x3d738
movq %rax, %rbx
leaq -0x48(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3d738
callq 0x2e360
movq 0x50869(%rip), %rsi     # 0x8dfa8
leaq -0x1d0(%rbp), %rdi
callq 0x2e230
leaq -0x160(%rbp), %rdi
callq 0x2e150
movq %rbx, %rdi
callq 0x2e730
nop