// File: /workspace/github_cpp_makefile_star2_O2/hanhwi[P]SimPoint/analysiscode/Simpoint.cpp
// Function: Simpoint::savePostClusteringData()
void Simpoint::savePostClusteringData() {

    Logger::log() << endl
          << "------------------------------------------------------------------\n"
          << "------------------------------------------------------------------\n"
          << "Post-processing runs\n"
          << "------------------------------------------------------------------\n"
          << "------------------------------------------------------------------\n";

    int bestRun = findBestRun();
    Logger::log() << "  For the BIC threshold, the best clustering was run " 
        << (bestRun+1) << " (k = " << options.kValues[bestRun] << ")\n";

    vector<int> labels(wholeDataset->numRows(), 0);
    Datapoint distsToCenters(wholeDataset->numRows());

    // save everything or just the best
    for (unsigned int runNumber = 0; runNumber < options.kValues.size(); runNumber++) {
        if ((runNumber != (unsigned int)bestRun) && (! options.saveAll)) {
            continue;
        }

        Logger::log() << "  Post-processing run " << (runNumber+1) << " (k = " 
             << options.kValues[runNumber] << ")\n";
        // save the initial centers
        if (options.saveInitialCentersName != "") {
            string name = options.saveInitialCentersName;
            if (options.saveAll) {
                name = createFileNameFromRun(options.saveInitialCentersName, runNumber+1, options.kValues[runNumber]);
            }
            Logger::log() << "    Saving initial centers to file '" << name << "'\n";
            ofstream output(name.c_str());
            Utilities::check(output.is_open(), "Simpoint::savePostClusteringData(): could not open file " +
                                    name);
            initialCenters[runNumber]->write(output);
            output.close();
        }

        // save the final centers
        if (options.saveFinalCentersName != "") {
            string name = options.saveFinalCentersName;
            if (options.saveAll) {
                name = createFileNameFromRun(options.saveFinalCentersName, runNumber+1, options.kValues[runNumber]);
            }
            Logger::log() << "    Saving final centers to file '" << name << "'\n";
            ofstream output(name.c_str());
            Utilities::check(output.is_open(), "Simpoint::savePostClusteringData(): could not open file " +
                                    name);
            finalCenters[runNumber]->write(output);
            output.close();
        }


        // pre-compute the labels and distances for saveSimpoints or saveLabels
        KMeans::findLabelsAndDists(*wholeDataset, *finalCenters[runNumber], 
                                       &labels, &distsToCenters);

        // save labels
        if (options.saveLabelsName != "") {
            string name = options.saveLabelsName;
            if (options.saveAll) {
                name = createFileNameFromRun(options.saveLabelsName, runNumber+1, options.kValues[runNumber]);
            }
            Logger::log() << "    Saving labels and distance from center of "
                << "each input vector to file '" << name << "'\n";

            ofstream output(name.c_str());
            Utilities::check(output.is_open(), "Simpoint::savePostClusteringData(): could not open file " +
                                    name);
            for (unsigned int r = 0; r < labels.size(); r++) {
                /* output the label and the distance from the center of this point */
                output << labels[r] << " " << distsToCenters[r] << endl;
            }
            output.close();
        }

        // prepare to save only the largest simpoints and weights
        vector<bool> nonEmptyClusters = getLargestClusters(1.0, *finalCenters[runNumber]);
        vector<bool> largestClusters = nonEmptyClusters;
        if (options.coveragePct < 1.0) {
            largestClusters = getLargestClusters(options.coveragePct, 
                                                 *finalCenters[runNumber]);
        }

        // save simpoints
        if (options.saveSimpointsName != "") {
            string name = options.saveSimpointsName;
            if (options.saveAll) { name = createFileNameFromRun(name, runNumber+1, options.kValues[runNumber]); }

            Logger::log() << "    Saving simpoints of all non-empty clusters to file '" 
                << name << "'\n";
            saveSimpoints(name, nonEmptyClusters, distsToCenters, labels,
                          finalCenters[runNumber]->numRows());

            if (options.coveragePct < 1.0) {
                name = options.saveSimpointsName + ".lpt" + 
                        toString(options.coveragePct);
                if (options.saveAll) { name = createFileNameFromRun(name, runNumber+1, options.kValues[runNumber]); }

                Logger::log() << "    Saving simpoints of largest clusters "
                    << "making up proportion " << options.coveragePct 
                    << " of all weights to file '" << name << "'\n";
                saveSimpoints(name, largestClusters, distsToCenters, labels,
                              finalCenters[runNumber]->numRows());
            }
        }


        // save weights
        if (options.saveSimpointWeightsName != "") {
            string name = options.saveSimpointWeightsName;
            if (options.saveAll) { name = createFileNameFromRun(name, runNumber+1, options.kValues[runNumber]); }
            Logger::log() << "    Saving weights of all non-empty clusters to file '" 
                << name << "'\n";

            saveSimpointWeights(name, nonEmptyClusters, *finalCenters[runNumber]);

            if (options.coveragePct < 1.0) {
                name = options.saveSimpointWeightsName + ".lpt" + 
                    toString(options.coveragePct);
                if (options.saveAll) { name = createFileNameFromRun(name, runNumber+1, options.kValues[runNumber]); }

                Logger::log() << "    Saving weights of largest clusters "
                    << "making up proportion " << options.coveragePct 
                    << " of all weights to file '" << name << "'\n";
                saveSimpointWeights(name, largestClusters, *finalCenters[runNumber]);
            }
        }
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x318, %rsp            # imm = 0x318
movq %rdi, %rbx
leaq 0x16973(%rip), %r15     # 0x21318
movl (%r15), %eax
shrl $0x1f, %eax
movq 0x8(%r15,%rax,8), %rdi
callq 0x4180
leaq 0xb250(%rip), %r14      # 0x15c0c
movq %rax, %rdi
movq %r14, %rsi
callq 0x4290
movq %rax, %rdi
movq %r14, %rsi
callq 0x4290
leaq 0xb277(%rip), %rsi      # 0x15c50
movq %rax, %rdi
callq 0x4290
movq %rax, %rdi
movq %r14, %rsi
callq 0x4290
movq %rax, %rdi
movq %r14, %rsi
callq 0x4290
movq %rbx, %rdi
callq 0xa354
movl %eax, %r14d
movl (%r15), %eax
shrl $0x1f, %eax
movq 0x8(%r15,%rax,8), %rdi
leaq 0xb252(%rip), %rsi      # 0x15c66
callq 0x4290
leal 0x1(%r14), %esi
movq %rax, %rdi
callq 0x4510
leaq 0xad8d(%rip), %rsi      # 0x157b9
movq %rax, %rdi
callq 0x4290
movq %r14, 0x88(%rsp)
movslq %r14d, %rcx
movq 0x90(%rbx), %rdx
movl (%rdx,%rcx,4), %esi
movq %rax, %rdi
callq 0x4510
leaq 0xaf39(%rip), %rsi      # 0x15991
movq %rax, %rdi
callq 0x4290
movq (%rbx), %rcx
movq 0x8(%rcx), %rax
subq (%rcx), %rax
pushq $0x18
popq %r14
cqto
idivq %r14
movl %eax, %esi
leaq 0x118(%rsp), %rdx
andl $0x0, (%rdx)
leaq 0x58(%rsp), %rdi
leaq 0x8(%rsp), %rcx
callq 0xc326
movq (%rbx), %rcx
movq 0x8(%rcx), %rax
subq (%rcx), %rax
cqto
idivq %r14
leaq 0x70(%rsp), %rdi
movl %eax, %esi
callq 0x589e
leaq 0x1a0(%rbx), %rax
movq %rax, 0x50(%rsp)
leaq 0x1c0(%rbx), %rax
movq %rax, 0x48(%rsp)
leaq 0x120(%rbx), %rax
movq %rax, 0x40(%rsp)
leaq 0x180(%rbx), %rax
movq %rax, 0x38(%rsp)
leaq 0x140(%rbx), %rax
movq %rax, 0x30(%rsp)
movq $0x0, (%rsp)
leaq 0x90(%rsp), %rbp
leaq 0xf8(%rsp), %r12
movl (%rsp), %r15d
movq 0x98(%rbx), %rax
subq 0x90(%rbx), %rax
sarq $0x2, %rax
cmpq %r15, %rax
jbe 0xb44b
cmpl 0x88(%rsp), %r15d
je 0xab34
cmpb $0x0, 0xcc(%rbx)
je 0xb43f
leaq 0x167dd(%rip), %rcx     # 0x21318
movl (%rcx), %eax
shrl $0x1f, %eax
movq 0x8(%rcx,%rax,8), %rdi
leaq 0xb150(%rip), %rsi      # 0x15c9c
callq 0x4290
leal 0x1(%r15), %esi
movq %rax, %rdi
movq %rsi, (%rsp)
callq 0x41e0
movq %rax, %rdi
leaq 0xac4e(%rip), %rsi      # 0x157b9
callq 0x4290
movq 0x90(%rbx), %rcx
movl (%rcx,%r15,4), %esi
movq %rax, %rdi
callq 0x4510
movq %rax, %rdi
leaq 0xae04(%rip), %rsi      # 0x15991
callq 0x4290
movq 0x50(%rsp), %rdi
leaq 0xa661(%rip), %rsi      # 0x151ff
callq 0x5556
testb %al, %al
je 0xacbc
leaq 0x8(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x43e0
cmpb $0x1, 0xcc(%rbx)
jne 0xabfc
movq 0x90(%rbx), %rax
movl (%rax,%r15,4), %ecx
leaq 0x118(%rsp), %r14
movq %r14, %rdi
movq 0x50(%rsp), %rsi
movq (%rsp), %rdx
callq 0xa040
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x4350
movq %r14, %rdi
callq 0x45e8
leaq 0x16715(%rip), %rcx     # 0x21318
movl (%rcx), %eax
shrl $0x1f, %eax
movq 0x8(%rcx,%rax,8), %rdi
leaq 0xb09f(%rip), %rsi      # 0x15cb3
callq 0x4290
movq %rax, %rdi
leaq 0x8(%rsp), %rsi
callq 0x4270
movq %rax, %rdi
leaq 0xaa07(%rip), %rsi      # 0x15637
callq 0x4290
movq 0x8(%rsp), %rsi
leaq 0x118(%rsp), %rdi
pushq $0x10
popq %rdx
callq 0x42f0
leaq 0x188(%rsp), %rdi
callq 0x40a0
movl %eax, %r13d
leaq 0x90(%rsp), %rbp
movq %rbp, %rdi
leaq 0xb06c(%rip), %rsi      # 0x15cd8
leaq 0x8(%rsp), %rdx
callq 0x54af
movzbl %r13b, %edi
movq %rbp, %rsi
callq 0x5364
movq %rbp, %rdi
callq 0x45e8
movq 0x10(%rbx), %rax
movq (%rax,%r15,8), %rdi
leaq 0x118(%rsp), %r14
movq %r14, %rsi
callq 0x637c
movq %r14, %rdi
callq 0x4400
movq %r14, %rdi
callq 0x4440
leaq 0x8(%rsp), %rdi
callq 0x45e8
movq 0x48(%rsp), %rdi
leaq 0xa537(%rip), %rsi      # 0x151ff
callq 0x5556
testb %al, %al
je 0xade6
leaq 0x8(%rsp), %rdi
movq 0x48(%rsp), %rsi
callq 0x43e0
cmpb $0x1, 0xcc(%rbx)
jne 0xad26
movq 0x90(%rbx), %rax
movl (%rax,%r15,4), %ecx
leaq 0x118(%rsp), %r14
movq %r14, %rdi
movq 0x48(%rsp), %rsi
movq (%rsp), %rdx
callq 0xa040
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x4350
movq %r14, %rdi
callq 0x45e8
leaq 0x165eb(%rip), %rcx     # 0x21318
movl (%rcx), %eax
shrl $0x1f, %eax
movq 0x8(%rcx,%rax,8), %rdi
leaq 0xafd3(%rip), %rsi      # 0x15d11
callq 0x4290
movq %rax, %rdi
leaq 0x8(%rsp), %rsi
callq 0x4270
movq %rax, %rdi
leaq 0xa8dd(%rip), %rsi      # 0x15637
callq 0x4290
movq 0x8(%rsp), %rsi
leaq 0x118(%rsp), %rdi
pushq $0x10
popq %rdx
callq 0x42f0
leaq 0x188(%rsp), %rdi
callq 0x40a0
movl %eax, %r13d
leaq 0x90(%rsp), %rbp
movq %rbp, %rdi
leaq 0xaf42(%rip), %rsi      # 0x15cd8
leaq 0x8(%rsp), %rdx
callq 0x54af
movzbl %r13b, %edi
movq %rbp, %rsi
callq 0x5364
movq %rbp, %rdi
callq 0x45e8
movq 0x28(%rbx), %rax
movq (%rax,%r15,8), %rdi
leaq 0x118(%rsp), %r14
movq %r14, %rsi
callq 0x637c
movq %r14, %rdi
callq 0x4400
movq %r14, %rdi
callq 0x4440
leaq 0x8(%rsp), %rdi
callq 0x45e8
movq (%rbx), %rdi
movq 0x28(%rbx), %rax
movq (%rax,%r15,8), %rsi
leaq 0x58(%rsp), %rdx
leaq 0x70(%rsp), %rcx
callq 0x7c7e
movq 0x40(%rsp), %rdi
leaq 0xa3f3(%rip), %rsi      # 0x151ff
callq 0x5556
testb %al, %al
je 0xaf8d
leaq 0x8(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0x43e0
cmpb $0x1, 0xcc(%rbx)
jne 0xae6a
movq 0x90(%rbx), %rax
movl (%rax,%r15,4), %ecx
leaq 0x118(%rsp), %r14
movq %r14, %rdi
movq 0x40(%rsp), %rsi
movq (%rsp), %rdx
callq 0xa040
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x4350
movq %r14, %rdi
callq 0x45e8
leaq 0x164a7(%rip), %rcx     # 0x21318
movl (%rcx), %eax
shrl $0x1f, %eax
movq 0x8(%rcx,%rax,8), %rdi
leaq 0xaeb2(%rip), %rsi      # 0x15d34
callq 0x4290
movq %rax, %rdi
leaq 0xac3d(%rip), %rsi      # 0x15ace
callq 0x4290
movq %rax, %rdi
leaq 0x8(%rsp), %rsi
callq 0x4270
movq %rax, %rdi
leaq 0xa78a(%rip), %rsi      # 0x15637
callq 0x4290
movq 0x8(%rsp), %rsi
leaq 0x118(%rsp), %rdi
pushq $0x10
popq %rdx
callq 0x42f0
leaq 0x188(%rsp), %rdi
callq 0x40a0
movl %eax, %r13d
leaq 0x90(%rsp), %rbp
movq %rbp, %rdi
leaq 0xadef(%rip), %rsi      # 0x15cd8
leaq 0x8(%rsp), %rdx
callq 0x54af
movzbl %r13b, %edi
movq %rbp, %rsi
callq 0x5364
movq %rbp, %rdi
callq 0x45e8
xorl %r13d, %r13d
movl %r13d, %r13d
movq 0x58(%rsp), %rax
movq 0x60(%rsp), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq %r13, %rcx
jbe 0xaf63
movl (%rax,%r13,4), %esi
leaq 0x118(%rsp), %rdi
callq 0x4510
movq %rax, %rdi
leaq 0xd276(%rip), %rsi      # 0x181b4
callq 0x4290
movq 0x70(%rsp), %rcx
movsd (%rcx,%r13,8), %xmm0
movq %rax, %rdi
callq 0x44d0
movq %rax, %rdi
callq 0x4180
incl %r13d
jmp 0xaf0a
leaq 0x118(%rsp), %r14
movq %r14, %rdi
callq 0x4400
movq %r14, %rdi
callq 0x4440
leaq 0x8(%rsp), %rdi
callq 0x45e8
leaq 0x90(%rsp), %rbp
movq 0x28(%rbx), %rax
movq (%rax,%r15,8), %rsi
leaq 0x118(%rsp), %r14
movq %r14, %rdi
movsd 0xa2a8(%rip), %xmm0     # 0x15250
callq 0xa3e6
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0xc39a
movsd 0xd0(%rbx), %xmm0
movsd 0xa286(%rip), %xmm1     # 0x15250
ucomisd %xmm0, %xmm1
jbe 0xaff5
movq 0x28(%rbx), %rax
movq (%rax,%r15,8), %rsi
movq %rbp, %rdi
callq 0xa3e6
leaq 0x8(%rsp), %rdi
movq %rbp, %rsi
callq 0xc416
movq %rbp, %rdi
callq 0xc316
movq 0x38(%rsp), %rdi
leaq 0xa1fe(%rip), %rsi      # 0x151ff
callq 0x5556
testb %al, %al
je 0xb228
movq %rbp, %rdi
movq 0x38(%rsp), %rsi
callq 0x43e0
cmpb $0x1, 0xcc(%rbx)
jne 0xb059
movq 0x90(%rbx), %rax
movl (%rax,%r15,4), %ecx
leaq 0xd8(%rsp), %r13
movq %r13, %rdi
movq %rbp, %rsi
movq (%rsp), %rdx
callq 0xa040
movq %rbp, %rdi
movq %r13, %rsi
callq 0x4350
movq %r13, %rdi
callq 0x45e8
leaq 0x162b8(%rip), %rcx     # 0x21318
movl (%rcx), %eax
shrl $0x1f, %eax
movq 0x8(%rcx,%rax,8), %rdi
leaq 0xacf2(%rip), %rsi      # 0x15d63
callq 0x4290
movq %rax, %rdi
movq %rbp, %rsi
callq 0x4270
movq %rax, %rdi
leaq 0xa5ac(%rip), %rsi      # 0x15637
callq 0x4290
movq 0x28(%rbx), %rax
movq (%rax,%r15,8), %rcx
movq 0x8(%rcx), %rax
subq (%rcx), %rax
cqto
pushq $0x18
popq %rcx
idivq %rcx
movq %rbp, %rdi
leaq 0x118(%rsp), %rsi
leaq 0x70(%rsp), %rdx
leaq 0x58(%rsp), %rcx
movl %eax, %r8d
callq 0xa63c
movsd 0xa184(%rip), %xmm0     # 0x15250
ucomisd 0xd0(%rbx), %xmm0
jbe 0xb220
leaq 0xb8(%rsp), %rdi
movq 0x38(%rsp), %rsi
leaq 0xacae(%rip), %rdx      # 0x15d9c
callq 0xc468
movsd 0xd0(%rbx), %xmm0
movq %r12, %rdi
callq 0x13abb
leaq 0xd8(%rsp), %r13
movq %r13, %rdi
leaq 0xb8(%rsp), %r14
movq %r14, %rsi
movq %r12, %rdx
callq 0x5429
movq %rbp, %rdi
movq %r13, %rsi
callq 0x4350
movq %r13, %rdi
callq 0x45e8
movq %r12, %rdi
callq 0x45e8
movq %r14, %rdi
callq 0x45e8
cmpb $0x1, 0xcc(%rbx)
jne 0xb182
movq 0x90(%rbx), %rax
movl (%rax,%r15,4), %ecx
leaq 0xd8(%rsp), %r13
movq %r13, %rdi
movq %rbp, %rsi
movq (%rsp), %rdx
callq 0xa040
movq %rbp, %rdi
movq %r13, %rsi
callq 0x4350
movq %r13, %rdi
callq 0x45e8
leaq 0x1618f(%rip), %rcx     # 0x21318
movl (%rcx), %eax
shrl $0x1f, %eax
movq 0x8(%rcx,%rax,8), %rdi
leaq 0xac07(%rip), %rsi      # 0x15da1
callq 0x4290
leaq 0xf8(%rsp), %r12
movq %rax, %rdi
leaq 0xac1a(%rip), %rsi      # 0x15dcb
callq 0x4290
movsd 0xd0(%rbx), %xmm0
movq %rax, %rdi
callq 0x44d0
movq %rax, %rdi
leaq 0xac11(%rip), %rsi      # 0x15de1
callq 0x4290
movq %rax, %rdi
movq %rbp, %rsi
callq 0x4270
movq %rax, %rdi
leaq 0xa44d(%rip), %rsi      # 0x15637
callq 0x4290
movq 0x28(%rbx), %rax
movq (%rax,%r15,8), %rcx
movq 0x8(%rcx), %rax
subq (%rcx), %rax
cqto
pushq $0x18
popq %rcx
idivq %rcx
movq %rbp, %rdi
leaq 0x8(%rsp), %rsi
leaq 0x70(%rsp), %rdx
leaq 0x58(%rsp), %rcx
movl %eax, %r8d
callq 0xa63c
movq %rbp, %rdi
callq 0x45e8
movq 0x30(%rsp), %rdi
leaq 0x9fcb(%rip), %rsi      # 0x151ff
callq 0x5556
testb %al, %al
je 0xb423
movq %rbp, %rdi
movq 0x30(%rsp), %rsi
callq 0x43e0
cmpb $0x1, 0xcc(%rbx)
jne 0xb28c
movq 0x90(%rbx), %rax
movl (%rax,%r15,4), %ecx
leaq 0xd8(%rsp), %r13
movq %r13, %rdi
movq %rbp, %rsi
movq (%rsp), %rdx
callq 0xa040
movq %rbp, %rdi
movq %r13, %rsi
callq 0x4350
movq %r13, %rdi
callq 0x45e8
leaq 0x16085(%rip), %rcx     # 0x21318
movl (%rcx), %eax
shrl $0x1f, %eax
movq 0x8(%rcx,%rax,8), %rdi
leaq 0xab57(%rip), %rsi      # 0x15dfb
callq 0x4290
movq %rax, %rdi
movq %rbp, %rsi
callq 0x4270
movq %rax, %rdi
leaq 0xa379(%rip), %rsi      # 0x15637
callq 0x4290
movq 0x28(%rbx), %rax
movq (%rax,%r15,8), %rdx
movq %rbp, %rdi
leaq 0x118(%rsp), %rsi
callq 0xa814
movsd 0x9f6d(%rip), %xmm0     # 0x15250
ucomisd 0xd0(%rbx), %xmm0
jbe 0xb41b
leaq 0xb8(%rsp), %rdi
movq 0x30(%rsp), %rsi
leaq 0xaa97(%rip), %rdx      # 0x15d9c
callq 0xc468
movsd 0xd0(%rbx), %xmm0
movq %r12, %rdi
callq 0x13abb
leaq 0xd8(%rsp), %r13
movq %r13, %rdi
leaq 0xb8(%rsp), %r14
movq %r14, %rsi
movq %r12, %rdx
callq 0x5429
movq %rbp, %rdi
movq %r13, %rsi
callq 0x4350
movq %r13, %rdi
callq 0x45e8
movq %r12, %rdi
callq 0x45e8
movq %r14, %rdi
callq 0x45e8
cmpb $0x1, 0xcc(%rbx)
jne 0xb399
movq 0x90(%rbx), %rax
movl (%rax,%r15,4), %ecx
leaq 0xd8(%rsp), %r13
movq %r13, %rdi
movq %rbp, %rsi
movq (%rsp), %rdx
callq 0xa040
movq %rbp, %rdi
movq %r13, %rsi
callq 0x4350
movq %r13, %rdi
callq 0x45e8
leaq 0x15f78(%rip), %rcx     # 0x21318
movl (%rcx), %eax
shrl $0x1f, %eax
movq 0x8(%rcx,%rax,8), %rdi
leaq 0xaa81(%rip), %rsi      # 0x15e32
callq 0x4290
leaq 0xf8(%rsp), %r12
movq %rax, %rdi
leaq 0xaa03(%rip), %rsi      # 0x15dcb
callq 0x4290
movsd 0xd0(%rbx), %xmm0
movq %rax, %rdi
callq 0x44d0
movq %rax, %rdi
leaq 0xa9fa(%rip), %rsi      # 0x15de1
callq 0x4290
movq %rax, %rdi
movq %rbp, %rsi
callq 0x4270
movq %rax, %rdi
leaq 0xa236(%rip), %rsi      # 0x15637
callq 0x4290
movq 0x28(%rbx), %rax
movq (%rax,%r15,8), %rdx
movq %rbp, %rdi
leaq 0x8(%rsp), %rsi
callq 0xa814
movq %rbp, %rdi
callq 0x45e8
leaq 0x8(%rsp), %rdi
callq 0xc316
leaq 0x118(%rsp), %rdi
callq 0xc316
jmp 0xaafe
incl %r15d
movq %r15, (%rsp)
jmp 0xaafe
leaq 0x70(%rsp), %rdi
callq 0x5f0a
leaq 0x58(%rsp), %rdi
callq 0x8498
addq $0x318, %rsp            # imm = 0x318
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0xb556
jmp 0xb504
jmp 0xb504
jmp 0xb4a1
jmp 0xb504
jmp 0xb504
jmp 0xb504
jmp 0xb504
jmp 0xb48f
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
callq 0x45e8
jmp 0xb4a4
movq %rax, %rbx
leaq 0xb8(%rsp), %rdi
callq 0x45e8
jmp 0xb507
jmp 0xb4fd
jmp 0xb4fd
jmp 0xb4fd
jmp 0xb532
jmp 0xb4f8
jmp 0xb4f8
jmp 0xb4f8
jmp 0xb4fd
jmp 0xb52d
jmp 0xb532
jmp 0xb4d1
jmp 0xb4fd
jmp 0xb532
jmp 0xb4fd
jmp 0xb4d1
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0x45e8
jmp 0xb535
jmp 0xb532
jmp 0xb52d
jmp 0xb52d
movq %rax, %rbx
jmp 0xb51e
jmp 0xb52d
jmp 0xb532
jmp 0xb532
jmp 0xb4fd
jmp 0xb4fd
movq %rax, %rbx
jmp 0xb514
movq %rax, %rbx
jmp 0xb542
jmp 0xb504
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0x45e8
leaq 0x8(%rsp), %rdi
callq 0xc316
leaq 0x118(%rsp), %rdi
callq 0xc316
jmp 0xb54c
movq %rax, %rbx
jmp 0xb54c
movq %rax, %rbx
leaq 0x118(%rsp), %rdi
callq 0x4440
leaq 0x8(%rsp), %rdi
callq 0x45e8
leaq 0x70(%rsp), %rdi
callq 0x5f0a
leaq 0x58(%rsp), %rdi
callq 0x8498
movq %rbx, %rdi
callq 0x4530