// File: /workspace/github_cpp_makefile_star2_O2/Merulo[P]CompilerJFTT/src/Calculators/MathOperations.cpp
// Function: MathOperations::generateMultiplication(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, Line)
std::vector<Line> MathOperations::generateMultiplication(std::string registerB, std::string registerC, std::string registerD, Line l)
{
    std::vector<Line> lines;
    std::string labelInCaseOfZero = generateLabel();
    //check if either registerB or registerC is zero.

    lines.push_back({"JZERO", registerB, labelInCaseOfZero});
    lines.push_back({"JZERO", registerC, labelInCaseOfZero});

    //compare so that we multiply by smaller
    lines.push_back({"COPY", registerD, registerC});
    lines.push_back({"COPY", registerD, registerB});
    std::string labelInCaseNoSwapNeeded = generateLabel();

    lines.push_back({"JZERO", registerD, labelInCaseNoSwapNeeded});
    
    //swap
    lines.push_back({"COPY", registerD, registerC});
    lines.push_back({"COPY", registerC, registerB});
    lines.push_back({"COPY", registerB, registerD});

    lines.push_back({labelInCaseNoSwapNeeded});
    lines.push_back({"SUB", registerD, registerD});

    std::string skipOddC = generateLabel();
    std::string mainLoopLabel = generateLabel();

    lines.push_back({mainLoopLabel});
    lines.push_back({"JODD", registerC, skipOddC});

    std::string handleOddC = generateLabel();
    lines.push_back({handleOddC});
    
    lines.push_back({"ADD", registerB, registerB});
    lines.push_back({"HALF", registerC});

    std::string exitLabel = generateLabel();
    lines.push_back({"JZERO", registerC, exitLabel});
    lines.push_back({"JUMP", "",mainLoopLabel});

    lines.push_back({skipOddC});
    lines.push_back({"ADD", registerD, registerB});
    lines.push_back({"JUMP", "", handleOddC});

    //in case this is zero
    lines.push_back({labelInCaseOfZero});
    lines.push_back({"SUB", registerD, registerD});
    lines.push_back({exitLabel});

    return lines;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x9d8, %rsp            # imm = 0x9D8
movq %rcx, %r14
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %rbx
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
leaq 0x118(%rsp), %rdi
callq 0xaafc
leaq 0x19c71(%rip), %rsi     # 0x2317c
leaq 0x9b8(%rsp), %rdi
leaq 0xb8(%rsp), %rdx
callq 0x4a54
leaq 0x998(%rsp), %rdi
movq %r15, %rsi
callq 0x4390
leaq 0x978(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x9b8(%rsp), %rsi
leaq 0x998(%rsp), %rdx
leaq 0x978(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x978(%rsp), %rdi
callq 0x4548
leaq 0x998(%rsp), %rdi
callq 0x4548
leaq 0x9b8(%rsp), %rdi
callq 0x4548
leaq 0x19bd0(%rip), %rsi     # 0x2317c
leaq 0x958(%rsp), %rdi
leaq 0xb8(%rsp), %rdx
callq 0x4a54
leaq 0x938(%rsp), %rdi
movq %r12, %rsi
callq 0x4390
leaq 0x918(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x958(%rsp), %rsi
leaq 0x938(%rsp), %rdx
leaq 0x918(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x918(%rsp), %rdi
callq 0x4548
leaq 0x938(%rsp), %rdi
callq 0x4548
leaq 0x958(%rsp), %rdi
callq 0x4548
leaq 0x19a78(%rip), %rsi     # 0x230c5
leaq 0x8f8(%rsp), %rdi
leaq 0xb8(%rsp), %rdx
callq 0x4a54
leaq 0x8d8(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x8b8(%rsp), %rdi
movq %r12, %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x8f8(%rsp), %rsi
leaq 0x8d8(%rsp), %rdx
leaq 0x8b8(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x8b8(%rsp), %rdi
callq 0x4548
leaq 0x8d8(%rsp), %rdi
callq 0x4548
leaq 0x8f8(%rsp), %rdi
callq 0x4548
leaq 0x199dc(%rip), %rsi     # 0x230c5
leaq 0x898(%rsp), %rdi
leaq 0xb8(%rsp), %rdx
callq 0x4a54
leaq 0x878(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x858(%rsp), %rdi
movq %r15, %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x898(%rsp), %rsi
leaq 0x878(%rsp), %rdx
leaq 0x858(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x858(%rsp), %rdi
callq 0x4548
leaq 0x878(%rsp), %rdi
callq 0x4548
leaq 0x898(%rsp), %rdi
callq 0x4548
leaq 0xb8(%rsp), %rdi
callq 0xaafc
leaq 0x199ea(%rip), %rsi     # 0x2317c
leaq 0x838(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x4a54
leaq 0x818(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x7f8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x838(%rsp), %rsi
leaq 0x818(%rsp), %rdx
leaq 0x7f8(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x7f8(%rsp), %rdi
callq 0x4548
leaq 0x818(%rsp), %rdi
callq 0x4548
leaq 0x838(%rsp), %rdi
callq 0x4548
leaq 0x19895(%rip), %rsi     # 0x230c5
leaq 0x7d8(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x4a54
leaq 0x7b8(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x798(%rsp), %rdi
movq %r12, %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x7d8(%rsp), %rsi
leaq 0x7b8(%rsp), %rdx
leaq 0x798(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x798(%rsp), %rdi
callq 0x4548
leaq 0x7b8(%rsp), %rdi
callq 0x4548
leaq 0x7d8(%rsp), %rdi
callq 0x4548
leaq 0x197fc(%rip), %rsi     # 0x230c5
leaq 0x778(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x4a54
leaq 0x758(%rsp), %rdi
movq %r12, %rsi
callq 0x4390
leaq 0x738(%rsp), %rdi
movq %r15, %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x778(%rsp), %rsi
leaq 0x758(%rsp), %rdx
leaq 0x738(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x738(%rsp), %rdi
callq 0x4548
leaq 0x758(%rsp), %rdi
callq 0x4548
leaq 0x778(%rsp), %rdi
callq 0x4548
leaq 0x19763(%rip), %rsi     # 0x230c5
leaq 0x718(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x4a54
leaq 0x6f8(%rsp), %rdi
movq %r15, %rsi
callq 0x4390
leaq 0x6d8(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x718(%rsp), %rsi
leaq 0x6f8(%rsp), %rdx
leaq 0x6d8(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x6d8(%rsp), %rdi
callq 0x4548
leaq 0x6f8(%rsp), %rdi
callq 0x4548
leaq 0x718(%rsp), %rdi
callq 0x4548
leaq 0x6b8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x4390
leaq 0x196d3(%rip), %rsi     # 0x230e3
leaq 0x698(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x4a54
leaq 0x196ba(%rip), %rsi     # 0x230e3
leaq 0x678(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0x4a54
leaq 0x10(%rsp), %rdi
leaq 0x6b8(%rsp), %rsi
leaq 0x698(%rsp), %rdx
leaq 0x678(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x678(%rsp), %rdi
callq 0x4548
leaq 0x698(%rsp), %rdi
callq 0x4548
leaq 0x6b8(%rsp), %rdi
callq 0x4548
leaq 0x195f1(%rip), %rsi     # 0x23096
leaq 0x658(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x4a54
leaq 0x638(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x618(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x658(%rsp), %rsi
leaq 0x638(%rsp), %rdx
leaq 0x618(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x618(%rsp), %rdi
callq 0x4548
leaq 0x638(%rsp), %rdi
callq 0x4548
leaq 0x658(%rsp), %rdi
callq 0x4548
leaq 0x78(%rsp), %rdi
callq 0xaafc
leaq 0xf8(%rsp), %rdi
callq 0xaafc
leaq 0x5f8(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x4390
leaq 0x19579(%rip), %rsi     # 0x230e3
leaq 0x5d8(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x4a54
leaq 0x1955d(%rip), %rsi     # 0x230e3
leaq 0x5b8(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0x4a54
leaq 0x10(%rsp), %rdi
leaq 0x5f8(%rsp), %rsi
leaq 0x5d8(%rsp), %rdx
leaq 0x5b8(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x5b8(%rsp), %rdi
callq 0x4548
leaq 0x5d8(%rsp), %rdi
callq 0x4548
leaq 0x5f8(%rsp), %rdi
callq 0x4548
leaq 0x19580(%rip), %rsi     # 0x23182
leaq 0x598(%rsp), %rdi
leaq 0xd8(%rsp), %rdx
callq 0x4a54
leaq 0x578(%rsp), %rdi
movq %r12, %rsi
callq 0x4390
leaq 0x558(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x598(%rsp), %rsi
leaq 0x578(%rsp), %rdx
leaq 0x558(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x558(%rsp), %rdi
callq 0x4548
leaq 0x578(%rsp), %rdi
callq 0x4548
leaq 0x598(%rsp), %rdi
callq 0x4548
leaq 0xd8(%rsp), %rdi
callq 0xaafc
leaq 0x538(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x4390
leaq 0x19421(%rip), %rsi     # 0x230e3
leaq 0x518(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0x4a54
leaq 0x19405(%rip), %rsi     # 0x230e3
leaq 0x4f8(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x4a54
leaq 0x10(%rsp), %rdi
leaq 0x538(%rsp), %rsi
leaq 0x518(%rsp), %rdx
leaq 0x4f8(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x4f8(%rsp), %rdi
callq 0x4548
leaq 0x518(%rsp), %rdi
callq 0x4548
leaq 0x538(%rsp), %rdi
callq 0x4548
leaq 0x1934b(%rip), %rsi     # 0x230a2
leaq 0x4d8(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0x4a54
leaq 0x4b8(%rsp), %rdi
movq %r15, %rsi
callq 0x4390
leaq 0x498(%rsp), %rdi
movq %r15, %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x4d8(%rsp), %rsi
leaq 0x4b8(%rsp), %rdx
leaq 0x498(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x498(%rsp), %rdi
callq 0x4548
leaq 0x4b8(%rsp), %rdi
callq 0x4548
leaq 0x4d8(%rsp), %rdi
callq 0x4548
leaq 0x19394(%rip), %rsi     # 0x23187
leaq 0x478(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0x4a54
leaq 0x458(%rsp), %rdi
movq %r12, %rsi
callq 0x4390
leaq 0x192c4(%rip), %rsi     # 0x230e3
leaq 0x438(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x4a54
leaq 0x10(%rsp), %rdi
leaq 0x478(%rsp), %rsi
leaq 0x458(%rsp), %rdx
leaq 0x438(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x438(%rsp), %rdi
callq 0x4548
leaq 0x458(%rsp), %rdi
callq 0x4548
leaq 0x478(%rsp), %rdi
callq 0x4548
leaq 0x98(%rsp), %rdi
callq 0xaafc
leaq 0x192d7(%rip), %rsi     # 0x2317c
leaq 0x418(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x4a54
leaq 0x3f8(%rsp), %rdi
movq %r12, %rsi
callq 0x4390
leaq 0x3d8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x418(%rsp), %rsi
leaq 0x3f8(%rsp), %rdx
leaq 0x3d8(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x3d8(%rsp), %rdi
callq 0x4548
leaq 0x3f8(%rsp), %rdi
callq 0x4548
leaq 0x418(%rsp), %rdi
callq 0x4548
leaq 0x19249(%rip), %rsi     # 0x2318c
leaq 0x3b8(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x4a54
leaq 0x19187(%rip), %rsi     # 0x230e3
leaq 0x398(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x4a54
leaq 0x378(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x3b8(%rsp), %rsi
leaq 0x398(%rsp), %rdx
leaq 0x378(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x378(%rsp), %rdi
callq 0x4548
leaq 0x398(%rsp), %rdi
callq 0x4548
leaq 0x3b8(%rsp), %rdi
callq 0x4548
leaq 0x358(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x4390
leaq 0x190e7(%rip), %rsi     # 0x230e3
leaq 0x338(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x4a54
leaq 0x190ce(%rip), %rsi     # 0x230e3
leaq 0x318(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x4a54
leaq 0x10(%rsp), %rdi
leaq 0x358(%rsp), %rsi
leaq 0x338(%rsp), %rdx
leaq 0x318(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x318(%rsp), %rdi
callq 0x4548
leaq 0x338(%rsp), %rdi
callq 0x4548
leaq 0x358(%rsp), %rdi
callq 0x4548
leaq 0x19014(%rip), %rsi     # 0x230a2
leaq 0x2f8(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x4a54
leaq 0x2d8(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x2b8(%rsp), %rdi
movq %r15, %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x2f8(%rsp), %rsi
leaq 0x2d8(%rsp), %rdx
leaq 0x2b8(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x2b8(%rsp), %rdi
callq 0x4548
leaq 0x2d8(%rsp), %rdi
callq 0x4548
leaq 0x2f8(%rsp), %rdi
callq 0x4548
leaq 0x19065(%rip), %rsi     # 0x2318c
leaq 0x298(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x4a54
leaq 0x18fa3(%rip), %rsi     # 0x230e3
leaq 0x278(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x4a54
leaq 0x258(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x298(%rsp), %rsi
leaq 0x278(%rsp), %rdx
leaq 0x258(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x258(%rsp), %rdi
callq 0x4548
leaq 0x278(%rsp), %rdi
callq 0x4548
leaq 0x298(%rsp), %rdi
callq 0x4548
leaq 0x238(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x4390
leaq 0x18f00(%rip), %rsi     # 0x230e3
leaq 0x218(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x4a54
leaq 0x18ee7(%rip), %rsi     # 0x230e3
leaq 0x1f8(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x4a54
leaq 0x10(%rsp), %rdi
leaq 0x238(%rsp), %rsi
leaq 0x218(%rsp), %rdx
leaq 0x1f8(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x1f8(%rsp), %rdi
callq 0x4548
leaq 0x218(%rsp), %rdi
callq 0x4548
leaq 0x238(%rsp), %rdi
callq 0x4548
leaq 0x18e21(%rip), %rsi     # 0x23096
leaq 0x1d8(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x4a54
leaq 0x1b8(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x198(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
leaq 0x1b8(%rsp), %rdx
leaq 0x198(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x198(%rsp), %rdi
callq 0x4548
leaq 0x1b8(%rsp), %rdi
callq 0x4548
leaq 0x1d8(%rsp), %rdi
callq 0x4548
leaq 0x178(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x4390
leaq 0x18dc0(%rip), %rsi     # 0x230e3
leaq 0x158(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x4a54
leaq 0x18da7(%rip), %rsi     # 0x230e3
leaq 0x138(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x4a54
leaq 0x10(%rsp), %rdi
leaq 0x178(%rsp), %rsi
leaq 0x158(%rsp), %rdx
leaq 0x138(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x138(%rsp), %rdi
callq 0x4548
leaq 0x158(%rsp), %rdi
callq 0x4548
leaq 0x178(%rsp), %rdi
callq 0x4548
leaq 0x98(%rsp), %rdi
callq 0x4548
leaq 0xd8(%rsp), %rdi
callq 0x4548
leaq 0xf8(%rsp), %rdi
callq 0x4548
leaq 0x78(%rsp), %rdi
callq 0x4548
leaq 0xb8(%rsp), %rdi
callq 0x4548
leaq 0x118(%rsp), %rdi
callq 0x4548
movq %rbx, %rax
addq $0x9d8, %rsp            # imm = 0x9D8
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa41d
movq %rax, %r14
leaq 0x138(%rsp), %rdi
callq 0x4548
jmp 0xa42f
movq %rax, %r14
leaq 0x158(%rsp), %rdi
callq 0x4548
jmp 0xa441
movq %rax, %r14
leaq 0x178(%rsp), %rdi
jmp 0xa63b
jmp 0xa642
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa465
movq %rax, %r14
leaq 0x198(%rsp), %rdi
callq 0x4548
jmp 0xa477
movq %rax, %r14
leaq 0x1b8(%rsp), %rdi
callq 0x4548
jmp 0xa489
movq %rax, %r14
leaq 0x1d8(%rsp), %rdi
jmp 0xa63b
jmp 0xa642
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa4ad
movq %rax, %r14
leaq 0x1f8(%rsp), %rdi
callq 0x4548
jmp 0xa4bf
movq %rax, %r14
leaq 0x218(%rsp), %rdi
callq 0x4548
jmp 0xa4d1
movq %rax, %r14
leaq 0x238(%rsp), %rdi
jmp 0xa63b
jmp 0xa642
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa4f5
movq %rax, %r14
leaq 0x258(%rsp), %rdi
callq 0x4548
jmp 0xa507
movq %rax, %r14
leaq 0x278(%rsp), %rdi
callq 0x4548
jmp 0xa519
movq %rax, %r14
leaq 0x298(%rsp), %rdi
jmp 0xa63b
jmp 0xa642
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa53d
movq %rax, %r14
leaq 0x2b8(%rsp), %rdi
callq 0x4548
jmp 0xa54f
movq %rax, %r14
leaq 0x2d8(%rsp), %rdi
callq 0x4548
jmp 0xa561
movq %rax, %r14
leaq 0x2f8(%rsp), %rdi
jmp 0xa63b
jmp 0xa642
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa585
movq %rax, %r14
leaq 0x318(%rsp), %rdi
callq 0x4548
jmp 0xa597
movq %rax, %r14
leaq 0x338(%rsp), %rdi
callq 0x4548
jmp 0xa5a9
movq %rax, %r14
leaq 0x358(%rsp), %rdi
jmp 0xa63b
jmp 0xa642
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa5cd
movq %rax, %r14
leaq 0x378(%rsp), %rdi
callq 0x4548
jmp 0xa5df
movq %rax, %r14
leaq 0x398(%rsp), %rdi
callq 0x4548
jmp 0xa5f1
movq %rax, %r14
leaq 0x3b8(%rsp), %rdi
jmp 0xa63b
jmp 0xa642
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa60f
movq %rax, %r14
leaq 0x3d8(%rsp), %rdi
callq 0x4548
jmp 0xa621
movq %rax, %r14
leaq 0x3f8(%rsp), %rdi
callq 0x4548
jmp 0xa633
movq %rax, %r14
leaq 0x418(%rsp), %rdi
callq 0x4548
jmp 0xa645
movq %rax, %r14
leaq 0x98(%rsp), %rdi
callq 0x4548
leaq 0xd8(%rsp), %rdi
callq 0x4548
leaq 0xf8(%rsp), %rdi
callq 0x4548
leaq 0x78(%rsp), %rdi
callq 0x4548
leaq 0xb8(%rsp), %rdi
callq 0x4548
leaq 0x118(%rsp), %rdi
callq 0x4548
movq %rbx, %rdi
callq 0x8236
movq %r14, %rdi
callq 0x4490
jmp 0xa775
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa6b7
movq %rax, %r14
leaq 0x438(%rsp), %rdi
callq 0x4548
jmp 0xa6c9
movq %rax, %r14
leaq 0x458(%rsp), %rdi
callq 0x4548
jmp 0xa6db
movq %rax, %r14
leaq 0x478(%rsp), %rdi
jmp 0xa64d
jmp 0xa775
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa6ff
movq %rax, %r14
leaq 0x498(%rsp), %rdi
callq 0x4548
jmp 0xa711
movq %rax, %r14
leaq 0x4b8(%rsp), %rdi
callq 0x4548
jmp 0xa723
movq %rax, %r14
leaq 0x4d8(%rsp), %rdi
jmp 0xa64d
jmp 0xa775
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa744
movq %rax, %r14
leaq 0x4f8(%rsp), %rdi
callq 0x4548
jmp 0xa756
movq %rax, %r14
leaq 0x518(%rsp), %rdi
callq 0x4548
jmp 0xa768
movq %rax, %r14
leaq 0x538(%rsp), %rdi
jmp 0xa64d
movq %rax, %r14
jmp 0xa652
jmp 0xa80a
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa794
movq %rax, %r14
leaq 0x558(%rsp), %rdi
callq 0x4548
jmp 0xa7a6
movq %rax, %r14
leaq 0x578(%rsp), %rdi
callq 0x4548
jmp 0xa7b8
movq %rax, %r14
leaq 0x598(%rsp), %rdi
jmp 0xa65a
jmp 0xa80a
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa7d9
movq %rax, %r14
leaq 0x5b8(%rsp), %rdi
callq 0x4548
jmp 0xa7eb
movq %rax, %r14
leaq 0x5d8(%rsp), %rdi
callq 0x4548
jmp 0xa7fd
movq %rax, %r14
leaq 0x5f8(%rsp), %rdi
jmp 0xa65a
movq %rax, %r14
jmp 0xa65f
movq %rax, %r14
jmp 0xa66c
jmp 0xa9c7
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa831
movq %rax, %r14
leaq 0x618(%rsp), %rdi
callq 0x4548
jmp 0xa843
movq %rax, %r14
leaq 0x638(%rsp), %rdi
callq 0x4548
jmp 0xa855
movq %rax, %r14
leaq 0x658(%rsp), %rdi
jmp 0xa671
jmp 0xa9c7
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa879
movq %rax, %r14
leaq 0x678(%rsp), %rdi
callq 0x4548
jmp 0xa88b
movq %rax, %r14
leaq 0x698(%rsp), %rdi
callq 0x4548
jmp 0xa89d
movq %rax, %r14
leaq 0x6b8(%rsp), %rdi
jmp 0xa671
jmp 0xa9c7
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa8c1
movq %rax, %r14
leaq 0x6d8(%rsp), %rdi
callq 0x4548
jmp 0xa8d3
movq %rax, %r14
leaq 0x6f8(%rsp), %rdi
callq 0x4548
jmp 0xa8e5
movq %rax, %r14
leaq 0x718(%rsp), %rdi
jmp 0xa671
jmp 0xa9c7
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa909
movq %rax, %r14
leaq 0x738(%rsp), %rdi
callq 0x4548
jmp 0xa91b
movq %rax, %r14
leaq 0x758(%rsp), %rdi
callq 0x4548
jmp 0xa92d
movq %rax, %r14
leaq 0x778(%rsp), %rdi
jmp 0xa671
jmp 0xa9c7
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa951
movq %rax, %r14
leaq 0x798(%rsp), %rdi
callq 0x4548
jmp 0xa963
movq %rax, %r14
leaq 0x7b8(%rsp), %rdi
callq 0x4548
jmp 0xa975
movq %rax, %r14
leaq 0x7d8(%rsp), %rdi
jmp 0xa671
jmp 0xa9c7
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa996
movq %rax, %r14
leaq 0x7f8(%rsp), %rdi
callq 0x4548
jmp 0xa9a8
movq %rax, %r14
leaq 0x818(%rsp), %rdi
callq 0x4548
jmp 0xa9ba
movq %rax, %r14
leaq 0x838(%rsp), %rdi
jmp 0xa671
movq %rax, %r14
jmp 0xa676
jmp 0xaaec
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xa9e6
movq %rax, %r14
leaq 0x858(%rsp), %rdi
callq 0x4548
jmp 0xa9f8
movq %rax, %r14
leaq 0x878(%rsp), %rdi
callq 0x4548
jmp 0xaa0a
movq %rax, %r14
leaq 0x898(%rsp), %rdi
jmp 0xa67e
jmp 0xaaec
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xaa2e
movq %rax, %r14
leaq 0x8b8(%rsp), %rdi
callq 0x4548
jmp 0xaa40
movq %rax, %r14
leaq 0x8d8(%rsp), %rdi
callq 0x4548
jmp 0xaa52
movq %rax, %r14
leaq 0x8f8(%rsp), %rdi
jmp 0xa67e
jmp 0xaaec
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xaa76
movq %rax, %r14
leaq 0x918(%rsp), %rdi
callq 0x4548
jmp 0xaa88
movq %rax, %r14
leaq 0x938(%rsp), %rdi
callq 0x4548
jmp 0xaa9a
movq %rax, %r14
leaq 0x958(%rsp), %rdi
jmp 0xa67e
jmp 0xaaec
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xaabb
movq %rax, %r14
leaq 0x978(%rsp), %rdi
callq 0x4548
jmp 0xaacd
movq %rax, %r14
leaq 0x998(%rsp), %rdi
callq 0x4548
jmp 0xaadf
movq %rax, %r14
leaq 0x9b8(%rsp), %rdi
jmp 0xa67e
movq %rax, %r14
jmp 0xa683
movq %rax, %r14
jmp 0xa690