// File: /workspace/github_cpp_makefile_star2_O3/eniac[P]Mantis/src/compile/compile_p4.cpp
// Function: transformMalleableRefs(std::vector<MblRefNode*, std::allocator<MblRefNode*>>*, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, P4RMalleableValueNode*, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, P4RMalleableValueNode*>>> const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, P4RMalleableFieldNode*, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, P4RMalleableFieldNode*>>> const&, std::vector<AstNode*, std::allocator<AstNode*>>*)
void transformMalleableRefs(
            vector<MblRefNode*>* mblRefs,
            const unordered_map<string, P4RMalleableValueNode*>& mblValues,
            const unordered_map<string, P4RMalleableFieldNode*>& mblFields,
            vector<AstNode*>* nodeArray) {
    while (!mblRefs->empty()) {
        MblRefNode* varRef = mblRefs->front();
        mblRefs->erase(mblRefs->begin());

        if (varRef->transformed_) {
            // We must have processed this variable reference in a previous pass
            // e.g., multiple references in the same action
            continue;
        }

        string* varName = varRef->name_->word_;

        if (mblValues.find(*varName) != mblValues.end()) {
            // we should treat variable value references in reaction and others differently
            bool is_in_reaction = false;
            AstNode* parent = varRef->parent_;
            while (parent != NULL) {
                if (typeContains(parent, "P4RReactionNode")) {
                    is_in_reaction = true;
                    break;
                }
                parent = parent->parent_;
            }
            if (is_in_reaction) {
                // For c code, we skip the transformation
                varRef->inReaction_ = true;
            } else {
                // Otherwise, transform it to valid meta data
                varRef->transform(string(kP4rIngMetadataName), *varRef->name_->word_);
            }
        } else if (mblFields.find(*varName) != mblFields.end()) {
            // Reference to a variable field
            transformMalleableFieldRef(varRef, mblRefs, nodeArray,
                                      *mblFields.find(*varName)->second);
        } else {
            PANIC("Unknown malleable ref!");
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x288, %rsp            # imm = 0x288
movq %rcx, -0xe8(%rbp)
movq %rdx, %rax
movq %rsi, -0xf8(%rbp)
movq %rdi, %r12
movq (%rdi), %rdi
movq 0x8(%r12), %rdx
cmpq %rdx, %rdi
je 0x64d79
movq %rax, -0xf0(%rbp)
movq %r12, -0xa0(%rbp)
movq (%rdi), %r15
leaq 0x8(%rdi), %rsi
cmpq %rdx, %rsi
je 0x64390
subq %rsi, %rdx
callq 0x2e690
movq 0x8(%r12), %rdx
addq $-0x8, %rdx
movq %rdx, 0x8(%r12)
cmpb $0x0, 0x39(%r15)
jne 0x64af8
movq 0x80(%r15), %rax
movq 0x40(%rax), %rbx
movq -0xf8(%rbp), %rdi
movq %rbx, %rsi
callq 0x6e750
testq %rax, %rax
je 0x643f3
movq %r15, %rbx
leaq 0x15745(%rip), %r14     # 0x79b12
movq 0x30(%rbx), %rbx
testq %rbx, %rbx
je 0x64473
movq %rbx, %rdi
movq %r14, %rsi
callq 0x6e968
testb %al, %al
je 0x643cd
movb $0x1, 0x3a(%r15)
jmp 0x64af8
movq -0xf0(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x6e85c
testq %rax, %rax
je 0x64d90
movq %r14, %rdi
movq %rbx, %rsi
callq 0x6e85c
movq 0x28(%rax), %rbx
movq %r15, %r14
movq 0x30(%r14), %r14
testq %r14, %r14
je 0x64d8b
movq %r14, %rdi
leaq 0x13538(%rip), %rsi     # 0x7796f
callq 0x6e968
testb %al, %al
jne 0x644c7
movq %r14, %rdi
leaq 0x137a3(%rip), %rsi     # 0x77bf1
callq 0x6e968
testb %al, %al
jne 0x64b0f
movq %r14, %rdi
leaq 0x156ad(%rip), %rsi     # 0x79b12
callq 0x6e968
testb %al, %al
je 0x64420
jmp 0x64af8
leaq -0x298(%rbp), %rax
movq %rax, -0x2a8(%rbp)
leaq -0x2a8(%rbp), %rbx
movq %rbx, %rdi
leaq 0x13769(%rip), %rsi     # 0x77bfb
leaq 0x1376e(%rip), %rdx     # 0x77c07
callq 0x32e40
movq 0x80(%r15), %rax
movq 0x40(%rax), %rdx
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3deb8
movq -0x2a8(%rbp), %rdi
leaq -0x298(%rbp), %rax
jmp 0x64aee
movq %r14, %rdi
leaq 0x281df(%rip), %rsi     # 0x8c6b0
leaq 0x28a98(%rip), %rdx     # 0x8cf70
xorl %ecx, %ecx
callq 0x2e430
movq %rax, -0x30(%rbp)
movq 0x40(%rax), %rax
movq 0x40(%rax), %rax
leaq -0x88(%rbp), %rcx
movq %rcx, -0x98(%rbp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x98(%rbp), %rdi
callq 0x32cbc
movq 0x80(%r15), %rax
movq 0x40(%rax), %rax
leaq -0xb0(%rbp), %rcx
movq %rcx, -0xc0(%rbp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0xc0(%rbp), %rdi
callq 0x32cbc
leaq -0x110(%rbp), %rdi
movq %rbx, %rsi
callq 0x6f34a
xorps %xmm0, %xmm0
movaps %xmm0, -0xe0(%rbp)
movq $0x0, -0xd0(%rbp)
movq -0x110(%rbp), %r15
movq -0x108(%rbp), %rax
movq %rax, -0x40(%rbp)
cmpq %rax, %r15
je 0x64841
movb $0x1, %al
movq (%r15), %rcx
movq 0x40(%rcx), %rdx
movq 0x48(%rcx), %rcx
movq 0x40(%rdx), %r12
movq 0x40(%rcx), %r13
testb $0x1, %al
je 0x646ac
leaq -0x2a8(%rbp), %rbx
movq %rbx, %rdi
callq 0x2e550
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x1584c(%rip), %rsi     # 0x79e04
callq 0x2e440
movq (%r12), %rsi
movq 0x8(%r12), %rdx
leaq -0x2a8(%rbp), %rdi
callq 0x2e440
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
leaq 0x15820(%rip), %rsi     # 0x79e04
callq 0x2e440
movq (%r13), %rsi
movq 0x8(%r13), %rdx
movq %rbx, %rdi
callq 0x2e440
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
leaq 0x157f9(%rip), %rsi     # 0x79e04
callq 0x2e440
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
movq %rbx, %rdi
callq 0x2e440
leaq -0x78(%rbp), %rbx
movq %rbx, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
leaq -0xe0(%rbp), %rdi
movq %rbx, %rsi
callq 0x3b2e6
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6465a
callq 0x2e360
movq %rbx, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
movq -0x30(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x40(%rax), %rdi
movq %rbx, %rsi
callq 0x2e4c0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6468f
callq 0x2e360
movq -0x30(%rbp), %rdi
xorl %esi, %esi
leaq -0xc0(%rbp), %rdx
movq %r12, %rcx
movq %r13, %r8
callq 0x6f1f4
jmp 0x64812
leaq -0x2a8(%rbp), %rbx
movq %rbx, %rdi
callq 0x2e550
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x1573a(%rip), %rsi     # 0x79e04
callq 0x2e440
movq (%r12), %rsi
movq 0x8(%r12), %rdx
leaq -0x2a8(%rbp), %rdi
callq 0x2e440
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
leaq 0x1570e(%rip), %rsi     # 0x79e04
callq 0x2e440
movq (%r13), %rsi
movq 0x8(%r13), %rdx
movq %rbx, %rdi
callq 0x2e440
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
leaq 0x156e7(%rip), %rsi     # 0x79e04
callq 0x2e440
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
movq %rbx, %rdi
callq 0x2e440
leaq -0x78(%rbp), %rbx
movq %rbx, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
leaq -0xe0(%rbp), %rdi
movq %rbx, %rsi
callq 0x3b2e6
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6476c
callq 0x2e360
movq %rbx, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
movq -0x30(%rbp), %rdi
movq %rbx, %rsi
callq 0x38ec4
movq %rax, %r14
movq %r12, -0x38(%rbp)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x647a0
callq 0x2e360
movq %r13, %r12
movq -0x30(%rbp), %rax
movq 0x30(%rax), %rdi
testq %rdi, %rdi
je 0x647ca
leaq 0x27ef9(%rip), %rsi     # 0x8c6b0
leaq 0x2822a(%rip), %rdx     # 0x8c9e8
xorl %ecx, %ecx
callq 0x2e430
movq %rax, %r13
jmp 0x647cd
xorl %r13d, %r13d
movl $0x50, %edi
callq 0x2e3a0
movq %rax, %rbx
movq 0x40(%r13), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x323d8
movq %rbx, 0x40(%r13)
movq %r13, 0x30(%rbx)
movq %rbx, 0x30(%r14)
movq %r14, %rdi
movq -0xa0(%rbp), %rsi
leaq -0xc0(%rbp), %rdx
movq -0x38(%rbp), %rcx
movq %r12, %r8
callq 0x6f1f4
leaq -0x2a8(%rbp), %rdi
movq 0x29788(%rip), %rsi     # 0x8dfa8
callq 0x2e230
leaq -0x238(%rbp), %rdi
callq 0x2e150
addq $0x8, %r15
xorl %eax, %eax
cmpq -0x40(%rbp), %r15
jne 0x6457f
leaq -0x78(%rbp), %rdi
movq -0xe8(%rbp), %rsi
leaq -0x98(%rbp), %rdx
callq 0x6f001
movq -0x68(%rbp), %rax
testq %rax, %rax
je 0x64a9b
movq %rax, -0x38(%rbp)
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0xe0(%rbp), %r12
movq -0xd8(%rbp), %rbx
cmpq %rbx, %r12
je 0x64973
movq -0x38(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x40(%rbp)
movb $0x1, %r14b
leaq -0x298(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq (%r12), %rsi
movq 0x8(%r12), %rdx
addq %rsi, %rdx
leaq -0x2a8(%rbp), %rdi
callq 0x32cbc
testb $0x1, %r14b
je 0x648dd
movq -0x40(%rbp), %rax
movq 0x40(%rax), %rax
movq 0x40(%rax), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x2e240
jmp 0x6494b
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %r15
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %r14
movl $0x20, %edi
callq 0x2e3a0
movq %rax, %r13
addq $0x10, %rax
movq %rax, (%r13)
movq -0x2a8(%rbp), %rsi
movq -0x2a0(%rbp), %rdx
addq %rsi, %rdx
movq %r13, %rdi
callq 0x32cbc
movq %r14, %rdi
movq %r13, %rsi
callq 0x326ee
movq %r15, %rdi
movq %r14, %rsi
callq 0x36c26
movq -0x30(%rbp), %rax
movq 0x50(%rax), %rdi
movq %r15, %rsi
callq 0x3257c
movq -0x2a8(%rbp), %rdi
leaq -0x298(%rbp), %rax
cmpq %rax, %rdi
je 0x64963
callq 0x2e360
addq $0x20, %r12
xorl %r14d, %r14d
cmpq %rbx, %r12
jne 0x64897
leaq -0x2a8(%rbp), %rbx
movq %rbx, %rdi
callq 0x2e550
movl $0xc, %edx
movq %rbx, %rdi
leaq 0x1326a(%rip), %rsi     # 0x77bfb
callq 0x2e440
leaq -0x130(%rbp), %r14
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x12f7d(%rip), %rsi     # 0x77929
callq 0x2e440
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq %rbx, %rdi
callq 0x2e440
movl $0x5, %edx
movq %rax, %rdi
leaq 0x13568(%rip), %rsi     # 0x77f3e
callq 0x2e440
movq %r14, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
movq -0x30(%rbp), %rdi
movq %r14, %rsi
callq 0x6f159
movl %eax, %r14d
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x64a11
callq 0x2e360
testb %r14b, %r14b
jne 0x64a74
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %r15
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %r14
movl $0x20, %edi
callq 0x2e3a0
movq %rax, %r13
movq %rax, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
movq %r14, %rdi
movq %r13, %rsi
callq 0x32870
movq %r15, %rdi
xorl %esi, %esi
movq %r14, %rdx
callq 0x368d8
movq -0x30(%rbp), %rax
movq 0x48(%rax), %rdi
movq %r15, %rsi
callq 0x32532
movq %rbx, %rdi
movq 0x2952a(%rip), %rsi     # 0x8dfa8
callq 0x2e230
leaq -0x238(%rbp), %rdi
callq 0x2e150
movq -0x38(%rbp), %rax
movq (%rax), %rax
jmp 0x6485c
leaq -0x78(%rbp), %rdi
callq 0x6dec8
leaq -0xe0(%rbp), %rdi
callq 0x394f2
movq -0x110(%rbp), %rdi
testq %rdi, %rdi
je 0x64ac1
callq 0x2e360
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
movq -0xa0(%rbp), %r12
je 0x64ae0
callq 0x2e360
movq -0x98(%rbp), %rdi
leaq -0x88(%rbp), %rax
cmpq %rax, %rdi
je 0x64af8
callq 0x2e360
movq (%r12), %rdi
movq 0x8(%r12), %rdx
cmpq %rdx, %rdi
jne 0x64377
jmp 0x64d79
movq %r14, %rdi
leaq 0x27b97(%rip), %r14     # 0x8c6b0
movq %r14, %rsi
leaq 0x283a5(%rip), %rdx     # 0x8cec8
xorl %ecx, %ecx
callq 0x2e430
movq %rax, -0x38(%rbp)
movq 0x30(%r15), %rax
movq 0x30(%rax), %rdi
movl $0x0, %eax
movq %rax, -0x40(%rbp)
testq %rdi, %rdi
je 0x64b59
movq %r14, %rsi
leaq 0x2813a(%rip), %rdx     # 0x8cc88
xorl %ecx, %ecx
callq 0x2e430
movq %rax, -0x40(%rbp)
leaq -0xc0(%rbp), %rdi
movq %rbx, %rsi
callq 0x6f34a
movq -0xc0(%rbp), %r12
movq -0xb8(%rbp), %rax
movq %rax, -0x30(%rbp)
cmpq %rax, %r12
je 0x64c05
movb $0x1, %al
movq (%r12), %r13
testb $0x1, %al
je 0x64bd3
movq 0x40(%r13), %rax
movq 0x48(%r13), %rcx
movq 0x40(%rcx), %rdx
movq 0x40(%rax), %rsi
movq %r15, %rdi
callq 0x3deb8
movq 0x30(%r15), %rdi
leaq 0x27b00(%rip), %rsi     # 0x8c6b0
leaq 0x282e1(%rip), %rdx     # 0x8ce98
xorl %ecx, %ecx
callq 0x2e430
movl 0x3c(%rax), %ebx
testl %ebx, %ebx
jne 0x64bf9
movl $0x1, 0x3c(%rax)
movl $0x1, %ebx
jmp 0x64bf9
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %r14
movq %rax, %rdi
movl %ebx, %esi
movq %r13, %rdx
callq 0x368d8
movq -0x40(%rbp), %rdi
movq %r14, %rsi
callq 0x32532
addq $0x8, %r12
xorl %eax, %eax
cmpq -0x30(%rbp), %r12
jne 0x64b85
movq 0x80(%r15), %rax
movq 0x40(%rax), %rax
leaq -0x68(%rbp), %rcx
movq %rcx, -0x78(%rbp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x78(%rbp), %rdi
callq 0x32cbc
leaq -0x2a8(%rbp), %rbx
movq %rbx, %rdi
callq 0x2e550
movq -0xa0(%rbp), %r12
movl $0xc, %edx
movq %rbx, %rdi
leaq 0x12fab(%rip), %rsi     # 0x77bfb
callq 0x2e440
movl $0x1, %edx
leaq -0x2a8(%rbp), %rdi
leaq 0x12cc1(%rip), %rsi     # 0x77929
callq 0x2e440
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
leaq -0x2a8(%rbp), %rdi
callq 0x2e440
movl $0x5, %edx
movq %rax, %rdi
leaq 0x132ae(%rip), %rsi     # 0x77f3e
callq 0x2e440
leaq -0x98(%rbp), %rbx
movq %rbx, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
movq -0x38(%rbp), %rdi
movq %rbx, %rsi
callq 0x6f159
movl %eax, %ebx
movq -0x98(%rbp), %rdi
leaq -0x88(%rbp), %rax
cmpq %rax, %rdi
je 0x64cd1
callq 0x2e360
testb %bl, %bl
jne 0x64d33
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %r15
movl $0x48, %edi
callq 0x2e3a0
movq %rax, %r14
movl $0x20, %edi
callq 0x2e3a0
movq %rax, %rbx
movq %rax, %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x2e660
movq %r14, %rdi
movq %rbx, %rsi
callq 0x32870
movq %r15, %rdi
xorl %esi, %esi
movq %r14, %rdx
callq 0x368d8
movq -0x38(%rbp), %rax
movq 0x48(%rax), %rdi
movq %r15, %rsi
callq 0x32532
leaq -0x2a8(%rbp), %rdi
movq 0x29267(%rip), %rsi     # 0x8dfa8
callq 0x2e230
leaq -0x238(%rbp), %rdi
callq 0x2e150
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x64d64
callq 0x2e360
movq -0xc0(%rbp), %rdi
testq %rdi, %rdi
jne 0x64af3
jmp 0x64af8
addq $0x288, %rsp            # imm = 0x288
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x2efcd
callq 0x2f004
movq %rax, %r12
movq %rbx, %rdi
callq 0x2e360
jmp 0x64dac
jmp 0x64e15
movq %rax, %r12
jmp 0x64db4
movq %rax, %r12
movq %r14, %rdi
callq 0x2e360
movq %r15, %rdi
callq 0x2e360
jmp 0x64e18
movq %rax, %r12
movq -0x98(%rbp), %rdi
leaq -0x88(%rbp), %rax
cmpq %rax, %rdi
jne 0x64db7
jmp 0x64e18
jmp 0x64e15
movq %rax, %r12
jmp 0x64e37
jmp 0x64ea0
jmp 0x64e98
movq %rax, %r12
jmp 0x64fae
movq %rax, %r12
jmp 0x64fc6
movq %rax, %r12
movq -0x2a8(%rbp), %rdi
leaq -0x298(%rbp), %rax
jmp 0x64fd4
movq %rax, %r12
jmp 0x64fde
movq %rax, %r12
movq 0x29189(%rip), %rsi     # 0x8dfa8
leaq -0x2a8(%rbp), %rdi
callq 0x2e230
leaq -0x238(%rbp), %rdi
callq 0x2e150
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
jne 0x64e4e
jmp 0x64ea3
jmp 0x64ea0
movq %rax, %r12
movq %r14, %rdi
callq 0x2e360
jmp 0x64ea3
movq %rax, %r12
movq %r13, %rdi
callq 0x2e360
jmp 0x64ebb
jmp 0x64ef7
jmp 0x64ef7
jmp 0x64ef7
movq %rax, %r12
movq %rbx, %rdi
jmp 0x64e91
jmp 0x64ef7
jmp 0x64e81
jmp 0x64e98
jmp 0x64e81
movq %rax, %r12
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x64efa
callq 0x2e360
jmp 0x64efa
movq %rax, %r12
jmp 0x64f91
movq %rax, %r12
movq -0xc0(%rbp), %rdi
testq %rdi, %rdi
jne 0x64fd9
jmp 0x64fde
movq %rax, %r12
movq %r14, %rdi
callq 0x2e360
jmp 0x64ecc
jmp 0x64f1b
jmp 0x64f1b
movq %rax, %r12
movq %r15, %rdi
callq 0x2e360
jmp 0x64f1e
jmp 0x64f85
movq %rax, %r12
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
jne 0x64ecf
jmp 0x64f1e
jmp 0x64ef7
jmp 0x64ef7
movq %rax, %r12
movq 0x290a7(%rip), %rsi     # 0x8dfa8
leaq -0x2a8(%rbp), %rdi
callq 0x2e230
leaq -0x238(%rbp), %rdi
callq 0x2e150
jmp 0x64f91
movq %rax, %r12
movq 0x29083(%rip), %rsi     # 0x8dfa8
leaq -0x2a8(%rbp), %rdi
callq 0x2e230
leaq -0x238(%rbp), %rdi
callq 0x2e150
jmp 0x64f88
movq %rax, %r12
movq %r13, %rdi
callq 0x2e360
jmp 0x64f5b
jmp 0x64f4e
movq %rax, %r12
jmp 0x64f6b
movq %rax, %r12
jmp 0x64f63
movq %rax, %r12
movq %r14, %rdi
callq 0x2e360
movq %r15, %rdi
callq 0x2e360
movq -0x2a8(%rbp), %rdi
leaq -0x298(%rbp), %rax
cmpq %rax, %rdi
je 0x64f88
callq 0x2e360
jmp 0x64f88
movq %rax, %r12
leaq -0x78(%rbp), %rdi
callq 0x6dec8
leaq -0xe0(%rbp), %rdi
callq 0x394f2
movq -0x110(%rbp), %rdi
testq %rdi, %rdi
je 0x64fae
callq 0x2e360
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x64fc6
callq 0x2e360
movq -0x98(%rbp), %rdi
leaq -0x88(%rbp), %rax
cmpq %rax, %rdi
je 0x64fde
callq 0x2e360
movq %r12, %rdi
callq 0x2e730