// File: /workspace/github_cpp_makefile_star2_O2/millanek[P]evo/process_vcf_get_sequences.cpp
// Function: print_split_incl_outgroup(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::vector<unsigned long, std::allocator<unsigned long>> const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> const&, unsigned long, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, unsigned int, std::map<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::less<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, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::vector<unsigned long, std::allocator<unsigned long>> const&, int)
void print_split_incl_outgroup(const std::string& currentScaffoldNum, const std::vector<string::size_type>& splits, const std::vector<std::string>& sampleNames, const size_t numSamples, std::vector<std::string>& scaffoldStrings, const unsigned int totalProcessedVariants, std::map<string, string>& outgroupSeqs, const std::string& outgroupName,const std::vector<string::size_type>& scaledSplits, const int fullScLength) {
    //for (std::vector<int>::size_type j = 0; j != splits.size(); j++) {
    
    std::cerr << "There are: " << splits.size() << " splits of size " << opt::splitNum << std::endl;
    
    std::ofstream* scaffoldFile;
    if (splits.size() == 0) {
        // Only print the whole scaffold if it contains a rasonble number of variants
        if (totalProcessedVariants % opt::splitNum > (opt::splitNum * 0.8)) {
            scaffoldFile = new std::ofstream(currentScaffoldNum.c_str());
            if (opt::bLDhat)
                *scaffoldFile << numSamples << "\t" << scaffoldStrings[0].length() << "\t" << "2" << std::endl;
            for (std::vector<std::string>::size_type i = 0; i != numSamples; i++) {
                *scaffoldFile << ">" << sampleNames[i] << std::endl;
                print80bpPerLineFile(scaffoldFile, scaffoldStrings[i]);
                scaffoldStrings[i] = "";
            }
            *scaffoldFile << ">" << outgroupName << std::endl;
            print80bpPerLineFile(scaffoldFile, outgroupSeqs[currentScaffoldNum]);
            scaffoldFile->close();
        } else {
            for (std::vector<std::string>::size_type i = 0; i != numSamples; i++) {
                scaffoldStrings[i] = "";
            }
            
        }
    } else {
        string firstSplitFileName = currentScaffoldNum + "_1_" + numToString(splits[0]);
        scaffoldFile = new std::ofstream(firstSplitFileName.c_str());
        if (opt::bLDhat)
            *scaffoldFile << numSamples << "\t" << splits[0] << "\t" << "2" << std::endl;
        for (std::vector<std::string>::size_type i = 0; i != numSamples; i++) {
            *scaffoldFile << ">" << sampleNames[i] << std::endl;
            print80bpPerLineFile(scaffoldFile, scaffoldStrings[i].substr(0,scaledSplits[0]));
        }
        *scaffoldFile << ">" << outgroupName << std::endl;
        print80bpPerLineFile(scaffoldFile, outgroupSeqs[currentScaffoldNum].substr(0,scaledSplits[0]));
        scaffoldFile->close();
        
        for (std::vector<int>::size_type j = 1; j != splits.size(); j++) {
            string splitFileName = currentScaffoldNum + "_" + numToString(splits[j-1]+1) + "_" + numToString(splits[j]);
            scaffoldFile = new std::ofstream(splitFileName.c_str());
            if (opt::bLDhat)
                *scaffoldFile << numSamples << "\t" << (splits[j] - splits[j-1]) << "\t" << "2" << std::endl;
            for (std::vector<std::string>::size_type i = 0; i != numSamples; i++) {
                *scaffoldFile << ">" << sampleNames[i] << std::endl;
                print80bpPerLineFile(scaffoldFile, scaffoldStrings[i].substr(scaledSplits[j-1], scaledSplits[j] - scaledSplits[j-1]));
            }
            *scaffoldFile << ">" << outgroupName << std::endl;
            print80bpPerLineFile(scaffoldFile, outgroupSeqs[currentScaffoldNum].substr(scaledSplits[j-1], scaledSplits[j] - scaledSplits[j-1]));
            scaffoldFile->close();
        }
        
        // Print the last part of the scaffold only if there are a reasonble number of variants
        if (totalProcessedVariants % opt::splitNum > (opt::splitNum * 0.8)) {
            string lastSplitFileName = currentScaffoldNum + "_" + numToString(splits[splits.size()-1]+1) + "_" + numToString(fullScLength);
            
            scaffoldFile = new std::ofstream(lastSplitFileName.c_str());
            if (opt::bLDhat)
                *scaffoldFile << numSamples << "\t" << (scaffoldStrings[0].length() - splits[splits.size()-1]) << "\t" << "2" << std::endl;
            for (std::vector<std::string>::size_type i = 0; i != numSamples; i++) {
                *scaffoldFile << ">" << sampleNames[i] << std::endl;
                print80bpPerLineFile(scaffoldFile, scaffoldStrings[i].substr(scaledSplits[splits.size()-1],std::string::npos));
                scaffoldStrings[i] = "";
            }
            *scaffoldFile << ">" << outgroupName << std::endl;
            print80bpPerLineFile(scaffoldFile, outgroupSeqs[currentScaffoldNum].substr(scaledSplits[scaledSplits.size()-1],std::string::npos));
            scaffoldFile->close();
        } else {
            for (std::vector<std::string>::size_type i = 0; i != numSamples; i++) {
                scaffoldStrings[i] = "";
            }
        }
    }
    
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x218, %rsp            # imm = 0x218
movl %r9d, %r14d
movq %r8, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
movq %rdx, 0x28(%rsp)
movq %rsi, %rbx
movq %rdi, %rbp
movq 0x89640(%rip), %rdi     # 0xdcfe8
leaq 0x4fdee(%rip), %rsi     # 0xa379d
callq 0x8480
movq 0x8(%rbx), %rsi
subq (%rbx), %rsi
sarq $0x3, %rsi
movq %rax, %rdi
callq 0x8320
leaq 0x4fddb(%rip), %rsi     # 0xa37a9
movq %rax, %rdi
callq 0x8480
movl 0x8aac4(%rip), %esi     # 0xde4a0
movq %rax, %rdi
callq 0x8840
movq %rax, %rdi
callq 0x8230
movq 0x8(%rbx), %rax
cmpq (%rbx), %rax
je 0x5408f
movl %r14d, 0x34(%rsp)
leaq 0x4fdb5(%rip), %rdx     # 0xa37ba
leaq 0x38(%rsp), %rdi
movq %rbp, 0x20(%rsp)
movq %rbp, %rsi
callq 0x28806
movq %rbx, 0x18(%rsp)
movq (%rbx), %rax
movq (%rax), %rsi
leaq 0x58(%rsp), %rdi
callq 0x554cb
leaq 0x138(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0x28a48
leaq 0x58(%rsp), %rdi
callq 0x8978
leaq 0x38(%rsp), %rdi
callq 0x8978
movl $0x200, %edi            # imm = 0x200
callq 0x8490
movq %rax, %r15
movq 0x138(%rsp), %rsi
pushq $0x10
popq %rdx
movq %rax, %rdi
callq 0x84e0
movq %r15, (%rsp)
cmpb $0x0, 0x8aa24(%rip)     # 0xde4a6
je 0x53ad9
movq %r15, %rdi
movq 0x8(%rsp), %rsi
callq 0x8320
leaq 0x46386(%rip), %rsi     # 0x99e1e
movq %rax, %rdi
callq 0x8480
movq 0x18(%rsp), %rcx
movq (%rcx), %rcx
movq (%rcx), %rsi
movq %rax, %rdi
callq 0x8320
leaq 0x46364(%rip), %rsi     # 0x99e1e
movq %rax, %rdi
callq 0x8480
leaq 0x4c9d3(%rip), %rsi     # 0xa049c
movq %rax, %rdi
callq 0x8480
movq %rax, %rdi
callq 0x8230
xorl %ebx, %ebx
leaq 0x4b030(%rip), %r15     # 0x9eb12
leaq 0x1d8(%rsp), %r12
movq %rsp, %r13
movq 0x8(%rsp), %r14
movq (%rsp), %rdi
subq $0x1, %r14
jb 0x53b5b
movq %r15, %rsi
callq 0x8480
movq 0x28(%rsp), %rcx
movq (%rcx), %rsi
addq %rbx, %rsi
movq %rax, %rdi
callq 0x8430
movq %rax, %rdi
callq 0x8230
movq 0x10(%rsp), %rax
movq (%rax), %rsi
addq %rbx, %rsi
movq 0x260(%rsp), %rax
movq (%rax), %rax
movq (%rax), %rcx
movq %r12, %rdi
xorl %edx, %edx
callq 0x84b0
movq %r13, %rdi
movq %r12, %rsi
callq 0x42730
movq %r12, %rdi
callq 0x8978
addq $0x20, %rbx
jmp 0x53af2
leaq 0x4afb0(%rip), %rsi     # 0x9eb12
callq 0x8480
movq %rax, %rdi
movq 0x258(%rsp), %rsi
callq 0x8430
movq %rax, %rdi
callq 0x8230
movq 0x250(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x3210e
movq 0x260(%rsp), %rcx
movq (%rcx), %rcx
movq (%rcx), %rcx
leaq 0x118(%rsp), %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x84b0
movq %rsp, %rdi
leaq 0x118(%rsp), %rsi
callq 0x42730
leaq 0x118(%rsp), %rdi
callq 0x8978
movq (%rsp), %rdi
callq 0x8620
pushq $0x1
popq %rbx
leaq 0x98(%rsp), %r13
movq %rsp, %r15
leaq 0x1b8(%rsp), %r12
movq 0x18(%rsp), %rcx
movq 0x8(%rcx), %rax
subq (%rcx), %rax
sarq $0x3, %rax
cmpq %rax, %rbx
je 0x53e5b
movq %r13, %rdi
movq 0x20(%rsp), %rsi
leaq 0x4fba7(%rip), %rdx     # 0xa37bc
callq 0x28806
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq -0x8(%rax,%rbx,8), %rsi
incq %rsi
leaq 0x78(%rsp), %rbp
movq %rbp, %rdi
callq 0x554cb
leaq 0xb8(%rsp), %r14
movq %r14, %rdi
movq %r13, %rsi
movq %rbp, %rdx
callq 0x28a48
leaq 0x58(%rsp), %rdi
movq %r14, %rsi
leaq 0x4fb60(%rip), %rdx     # 0xa37bc
callq 0x28a29
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbx,8), %rsi
leaq 0xd8(%rsp), %rbp
movq %rbp, %rdi
callq 0x554cb
leaq 0x38(%rsp), %rdi
leaq 0x58(%rsp), %r14
movq %r14, %rsi
movq %rbp, %rdx
callq 0x28a48
movq %rbp, %rdi
callq 0x8978
movq %r14, %rdi
callq 0x8978
leaq 0xb8(%rsp), %rdi
callq 0x8978
leaq 0x78(%rsp), %rdi
callq 0x8978
movq %r13, %rdi
callq 0x8978
movl $0x200, %edi            # imm = 0x200
callq 0x8490
leaq 0x4ae40(%rip), %r13     # 0x9eb12
movq %rax, %r14
movq 0x38(%rsp), %rsi
movq %rax, %rdi
pushq $0x10
popq %rdx
callq 0x84e0
movq %r14, (%rsp)
cmpb $0x0, 0x8a7b6(%rip)     # 0xde4a6
je 0x53d4d
movq %r14, %rdi
movq 0x8(%rsp), %rsi
callq 0x8320
movq %rax, %rdi
leaq 0x46115(%rip), %rsi     # 0x99e1e
callq 0x8480
movq 0x18(%rsp), %rcx
movq (%rcx), %rcx
movq (%rcx,%rbx,8), %rsi
subq -0x8(%rcx,%rbx,8), %rsi
movq %rax, %rdi
callq 0x8320
movq %rax, %rdi
leaq 0x460ed(%rip), %rsi     # 0x99e1e
callq 0x8480
movq %rax, %rdi
leaq 0x4c75c(%rip), %rsi     # 0xa049c
callq 0x8480
movq %rax, %rdi
callq 0x8230
movq 0x8(%rsp), %r14
xorl %ebp, %ebp
movq (%rsp), %rdi
subq $0x1, %r14
jb 0x53dc4
movq %r13, %rsi
callq 0x8480
movq 0x28(%rsp), %rcx
movq (%rcx), %rsi
addq %rbp, %rsi
movq %rax, %rdi
callq 0x8430
movq %rax, %rdi
callq 0x8230
movq 0x10(%rsp), %rax
movq (%rax), %rsi
addq %rbp, %rsi
movq 0x260(%rsp), %rax
movq (%rax), %rax
movq -0x8(%rax,%rbx,8), %rdx
movq (%rax,%rbx,8), %rcx
subq %rdx, %rcx
movq %r12, %rdi
callq 0x84b0
movq %r15, %rdi
movq %r12, %rsi
callq 0x42730
movq %r12, %rdi
callq 0x8978
addq $0x20, %rbp
jmp 0x53d54
movq %r13, %rsi
callq 0x8480
movq %rax, %rdi
movq 0x258(%rsp), %rsi
callq 0x8430
movq %rax, %rdi
callq 0x8230
movq 0x250(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x3210e
movq 0x260(%rsp), %rcx
movq (%rcx), %rcx
movq -0x8(%rcx,%rbx,8), %rdx
movq (%rcx,%rbx,8), %rcx
subq %rdx, %rcx
leaq 0x158(%rsp), %rdi
movq %rax, %rsi
callq 0x84b0
movq %r15, %rdi
leaq 0x158(%rsp), %r14
movq %r14, %rsi
callq 0x42730
movq %r14, %rdi
callq 0x8978
movq (%rsp), %rdi
callq 0x8620
leaq 0x38(%rsp), %rdi
callq 0x8978
incq %rbx
leaq 0x98(%rsp), %r13
jmp 0x53bed
movl 0x8a63f(%rip), %ecx     # 0xde4a0
movl 0x34(%rsp), %eax
xorl %edx, %edx
divl %ecx
cvtsi2sd %rdx, %xmm0
cvtsi2sd %ecx, %xmm1
mulsd 0x4f55e(%rip), %xmm1    # 0xa33d8
ucomisd %xmm1, %xmm0
jbe 0x541ba
leaq 0x4f931(%rip), %rdx     # 0xa37bc
leaq 0x98(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x28806
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rax), %rsi
incq %rsi
leaq 0x78(%rsp), %rdi
callq 0x554cb
leaq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
leaq 0x78(%rsp), %rdx
callq 0x28a48
leaq 0x4f8e4(%rip), %rdx     # 0xa37bc
leaq 0x58(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x28a29
leaq 0xd8(%rsp), %rdi
movl 0x268(%rsp), %esi
callq 0x28ad3
leaq 0x38(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
callq 0x28a48
leaq 0xd8(%rsp), %rdi
callq 0x8978
leaq 0x58(%rsp), %rdi
callq 0x8978
leaq 0xb8(%rsp), %rdi
callq 0x8978
leaq 0x78(%rsp), %rdi
callq 0x8978
leaq 0x98(%rsp), %rdi
callq 0x8978
movl $0x200, %edi            # imm = 0x200
callq 0x8490
movq %rax, %r15
movq 0x38(%rsp), %rsi
pushq $0x10
popq %rdx
movq %rax, %rdi
callq 0x84e0
movq %r15, (%rsp)
cmpb $0x0, 0x8a52e(%rip)     # 0xde4a6
je 0x53fdd
movq %r15, %rdi
movq 0x8(%rsp), %rsi
callq 0x8320
leaq 0x45e90(%rip), %rsi     # 0x99e1e
movq %rax, %rdi
callq 0x8480
movq 0x10(%rsp), %rcx
movq (%rcx), %rcx
movq 0x8(%rcx), %rsi
movq 0x18(%rsp), %rcx
movq 0x8(%rcx), %rcx
subq -0x8(%rcx), %rsi
movq %rax, %rdi
callq 0x8320
leaq 0x45e60(%rip), %rsi     # 0x99e1e
movq %rax, %rdi
callq 0x8480
leaq 0x4c4cf(%rip), %rsi     # 0xa049c
movq %rax, %rdi
callq 0x8480
movq %rax, %rdi
callq 0x8230
xorl %ebx, %ebx
leaq 0x4ab2c(%rip), %r14     # 0x9eb12
leaq 0x198(%rsp), %r12
pushq $-0x1
popq %rbp
movq %rsp, %r15
leaq 0x45e24(%rip), %r13     # 0x99e1f
movq (%rsp), %rdi
subq $0x1, 0x8(%rsp)
jb 0x541e8
movq %r14, %rsi
callq 0x8480
movq 0x28(%rsp), %rcx
movq (%rcx), %rsi
addq %rbx, %rsi
movq %rax, %rdi
callq 0x8430
movq %rax, %rdi
callq 0x8230
movq 0x10(%rsp), %rax
movq (%rax), %rsi
addq %rbx, %rsi
movq 0x18(%rsp), %rcx
movq 0x8(%rcx), %rax
subq (%rcx), %rax
movq 0x260(%rsp), %rcx
movq (%rcx), %rcx
movq -0x8(%rcx,%rax), %rdx
movq %r12, %rdi
movq %rbp, %rcx
callq 0x84b0
movq %r15, %rdi
movq %r12, %rsi
callq 0x42730
movq %r12, %rdi
callq 0x8978
movq 0x10(%rsp), %rax
movq (%rax), %rdi
addq %rbx, %rdi
movq %r13, %rsi
callq 0x88f0
addq $0x20, %rbx
jmp 0x53ffb
movl 0x8a40b(%rip), %ecx     # 0xde4a0
movl %r14d, %eax
xorl %edx, %edx
divl %ecx
cvtsi2sd %rdx, %xmm0
cvtsi2sd %ecx, %xmm1
mulsd 0x4f32b(%rip), %xmm1    # 0xa33d8
ucomisd %xmm1, %xmm0
jbe 0x54283
movl $0x200, %edi            # imm = 0x200
callq 0x8490
movq %rax, %r14
movq (%rbp), %rsi
pushq $0x10
popq %rdx
movq %rax, %rdi
callq 0x84e0
movq %r14, (%rsp)
cmpb $0x0, 0x8a3c8(%rip)     # 0xde4a6
je 0x54135
movq %r14, %rdi
movq 0x8(%rsp), %rsi
callq 0x8320
leaq 0x45d2a(%rip), %r14     # 0x99e1e
movq %rax, %rdi
movq %r14, %rsi
callq 0x8480
movq 0x10(%rsp), %rcx
movq (%rcx), %rcx
movq 0x8(%rcx), %rsi
movq %rax, %rdi
callq 0x8320
movq %rax, %rdi
movq %r14, %rsi
callq 0x8480
leaq 0x4c377(%rip), %rsi     # 0xa049c
movq %rax, %rdi
callq 0x8480
movq %rax, %rdi
callq 0x8230
xorl %ebx, %ebx
leaq 0x4a9d4(%rip), %r15     # 0x9eb12
leaq 0x1f8(%rsp), %r12
leaq 0x45cd2(%rip), %r13     # 0x99e1f
movq 0x10(%rsp), %r14
movq (%rsp), %rdi
movq %r15, %rsi
callq 0x8480
subq $0x1, 0x8(%rsp)
jb 0x542ad
movq 0x28(%rsp), %rcx
movq (%rcx), %rsi
addq %rbx, %rsi
movq %rax, %rdi
callq 0x8430
movq %rax, %rdi
callq 0x8230
movq (%r14), %rsi
addq %rbx, %rsi
movq %r12, %rdi
callq 0x8600
movq %rsp, %rdi
movq %r12, %rsi
callq 0x42730
movq %r12, %rdi
callq 0x8978
movq (%r14), %rdi
addq %rbx, %rdi
movq %r13, %rsi
callq 0x88f0
addq $0x20, %rbx
jmp 0x54152
xorl %ebx, %ebx
leaq 0x45c5c(%rip), %r14     # 0x99e1f
subq $0x1, 0x8(%rsp)
jb 0x54271
movq 0x10(%rsp), %rax
movq (%rax), %rdi
addq %rbx, %rdi
movq %r14, %rsi
callq 0x88f0
addq $0x20, %rbx
jmp 0x541c3
leaq 0x4a923(%rip), %rsi     # 0x9eb12
callq 0x8480
movq %rax, %rdi
movq 0x258(%rsp), %rsi
callq 0x8430
movq %rax, %rdi
callq 0x8230
movq 0x250(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x3210e
movq 0x260(%rsp), %rcx
movq 0x8(%rcx), %rcx
movq -0x8(%rcx), %rdx
leaq 0xf8(%rsp), %rdi
pushq $-0x1
popq %rcx
movq %rax, %rsi
callq 0x84b0
movq %rsp, %rdi
leaq 0xf8(%rsp), %rsi
callq 0x42730
leaq 0xf8(%rsp), %rdi
callq 0x8978
movq (%rsp), %rdi
callq 0x8620
leaq 0x38(%rsp), %rdi
callq 0x8978
leaq 0x138(%rsp), %rdi
callq 0x8978
jmp 0x54309
xorl %ebx, %ebx
leaq 0x45b93(%rip), %r14     # 0x99e1f
subq $0x1, 0x8(%rsp)
jb 0x54309
movq 0x10(%rsp), %rax
movq (%rax), %rdi
addq %rbx, %rdi
movq %r14, %rsi
callq 0x88f0
addq $0x20, %rbx
jmp 0x5428c
movq %rax, %rdi
movq 0x258(%rsp), %rsi
callq 0x8430
movq %rax, %rdi
callq 0x8230
movq 0x250(%rsp), %rdi
movq %rbp, %rsi
callq 0x3210e
leaq 0x178(%rsp), %rbx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x8600
movq %rsp, %rdi
movq %rbx, %rsi
callq 0x42730
leaq 0x178(%rsp), %rdi
callq 0x8978
movq (%rsp), %rdi
callq 0x8620
addq $0x218, %rsp            # imm = 0x218
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
jmp 0x5449e
movq %rax, %rbx
movl $0x200, %esi            # imm = 0x200
movq %r14, %rdi
callq 0x84a0
jmp 0x544a3
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
jmp 0x54482
movq %rax, %rbx
movl $0x200, %esi            # imm = 0x200
movq %r15, %rdi
jmp 0x5442a
jmp 0x54403
jmp 0x543fe
jmp 0x5443d
jmp 0x54438
jmp 0x54433
jmp 0x54470
movq %rax, %rbx
leaq 0x118(%rsp), %rdi
jmp 0x54491
movq %rax, %rbx
movl $0x200, %esi            # imm = 0x200
movq %r15, %rdi
callq 0x84a0
jmp 0x54496
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x8978
jmp 0x543b5
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
jmp 0x5449e
jmp 0x54489
movq %rax, %rbx
leaq 0x1f8(%rsp), %rdi
jmp 0x5449e
jmp 0x54470
movq %rax, %rbx
leaq 0x198(%rsp), %rdi
jmp 0x54482
jmp 0x54470
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
jmp 0x54482
movq %rax, %rbx
jmp 0x54413
movq %rax, %rbx
leaq 0xd8(%rsp), %rdi
callq 0x8978
leaq 0x58(%rsp), %rdi
callq 0x8978
jmp 0x54440
movq %rax, %rbx
movl $0x200, %esi            # imm = 0x200
movq %r14, %rdi
callq 0x84a0
jmp 0x5448c
jmp 0x54470
movq %rax, %rbx
jmp 0x54457
movq %rax, %rbx
jmp 0x5444d
movq %rax, %rbx
leaq 0xb8(%rsp), %rdi
callq 0x8978
leaq 0x78(%rsp), %rdi
callq 0x8978
leaq 0x98(%rsp), %rdi
jmp 0x54491
movq %rax, %rbx
leaq 0x1d8(%rsp), %rdi
jmp 0x54491
jmp 0x54489
movq %rax, %rbx
jmp 0x54496
jmp 0x54489
movq %rax, %rbx
leaq 0x1b8(%rsp), %rdi
callq 0x8978
jmp 0x5448c
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0x8978
leaq 0x138(%rsp), %rdi
callq 0x8978
movq %rbx, %rdi
callq 0x8870