// File: /workspace/github_cpp_makefile_star2_O3/zeeev[P]DASVC/bamtools/src/toolkit/bamtools_resolve.cpp
// Function: BamTools::ResolveTool::ResolveTool()
ResolveTool::ResolveTool(void)
    : AbstractTool()
    , m_settings(new ResolveSettings)
    , m_impl(0)
{
    // set description texts
    const string programDescription = "resolves paired-end reads (marking the IsProperPair flag as needed)";
    const string programUsage = "<mode> [options] [-in <filename>] [-out <filename> | [-forceCompression] ] [-stats <filename>]";
    const string inputBamDescription = "the input BAM file(s)";
    const string outputBamDescription = "the output BAM file";
    const string statsFileDescription = "input/output stats file, depending on selected mode (see below). "
            "This file is human-readable, storing fragment length data generated per read group, as well as "
            "the options used to configure the -makeStats mode";
    const string forceCompressionDescription = "if results are sent to stdout (like when piping to another tool), "
            "default behavior is to leave output uncompressed."
            "Use this flag to override and force compression. This feature is disabled in -makeStats mode.";
    const string makeStatsDescription = "generates a fragment-length stats file from the input BAM. "
            "Data is written to file specified using the -stats option. "
            "MarkPairs Mode Settings are DISABLED.";
    const string markPairsDescription = "generates an output BAM with alignments marked with proper-pair status. "
            "Stats data is read from file specified using the -stats option. "
            "MakeStats Mode Settings are DISABLED";
    const string twoPassDescription = "combines the -makeStats & -markPairs modes into a single command. "
            "However, due to the two-pass nature of paired-end resolution, piping BAM data via stdin is DISABLED. "
            "You must supply an explicit input BAM file. Output BAM may be piped to stdout, however, if desired. "
            "All MakeStats & MarkPairs Mode Settings are available. "
            "The intermediate stats file is not necessary, but if the -stats options is used, then one will be generated. "
            "You may find this useful for documentation purposes.";
    const string minMapQualDescription = "minimum map quality. Used in -makeStats mode as a heuristic for determining a mate's "
            "uniqueness. Used in -markPairs mode as a filter for marking candidate proper pairs.";
    const string confidenceIntervalDescription = "confidence interval. Set min/max fragment lengths such that we capture "
            "this fraction of pairs";
    const string unusedModelThresholdDescription = "unused model threshold. The resolve tool considers 8 possible orientation models "
            "for pairs. The top 2 are selected for later use when actually marking alignments. This value determines the "
            "cutoff for marking a read group as ambiguous. Meaning that if the ratio of the number of alignments from bottom 6 models "
            "to the top 2 is greater than this threshold, then the read group is flagged as ambiguous. By default, NO alignments "
            "from ambiguous read groups will be marked as proper pairs. You may override this behavior with the -force option "
            "in -markPairs mode";
    const string forceMarkDescription = "forces all read groups to be marked according to their top 2 'orientation models'. "
            "When generating stats, the 2 (out of 8 possible) models with the most observations are chosen as the top models for each read group. "
            "If the remaining 6 models account for more than some threshold ([default=10%], see -umt), then the read group is marked as ambiguous. "
            "The default behavior is that for an ambiguous read group, NONE of its alignments are marked as proper-pairs. "
            "By setting this option, a read group's ambiguity flag will be ignored, and all of its alignments will be compared to the top 2 models.";

    // set program details
    Options::SetProgramInfo("bamtools resolve", programDescription, programUsage);

    // set up I/O options
    OptionGroup* IO_Opts = Options::CreateOptionGroup("Input & Output");
    Options::AddValueOption("-in",  "BAM filename", inputBamDescription, "",
                            m_settings->HasInputBamFile, m_settings->InputBamFilename,
                            IO_Opts, Options::StandardIn());
    Options::AddValueOption("-out", "BAM filename", outputBamDescription, "",
                            m_settings->HasOutputBamFile, m_settings->OutputBamFilename,
                            IO_Opts, Options::StandardOut());
    Options::AddValueOption("-stats", "STATS filename", statsFileDescription, "",
                            m_settings->HasStatsFile, m_settings->StatsFilename, IO_Opts);
    Options::AddOption("-forceCompression", forceCompressionDescription,
                       m_settings->IsForceCompression, IO_Opts);

    OptionGroup* ModeOpts = Options::CreateOptionGroup("Resolve Modes (must select ONE of the following)");
    Options::AddOption("-makeStats", makeStatsDescription, m_settings->IsMakeStats, ModeOpts);
    Options::AddOption("-markPairs", markPairsDescription, m_settings->IsMarkPairs, ModeOpts);
    Options::AddOption("-twoPass",   twoPassDescription,   m_settings->IsTwoPass,   ModeOpts);

    OptionGroup* GeneralOpts = Options::CreateOptionGroup("General Resolve Options (available in all modes)");
    Options::AddValueOption("-minMQ", "unsigned short", minMapQualDescription, "",
                            m_settings->HasMinimumMapQuality, m_settings->MinimumMapQuality, GeneralOpts);

    OptionGroup* MakeStatsOpts = Options::CreateOptionGroup("MakeStats Mode Options (disabled in -markPairs mode)");
    Options::AddValueOption("-ci", "double", confidenceIntervalDescription, "",
                            m_settings->HasConfidenceInterval, m_settings->ConfidenceInterval, MakeStatsOpts);
    Options::AddValueOption("-umt", "double", unusedModelThresholdDescription, "",
                            m_settings->HasUnusedModelThreshold, m_settings->UnusedModelThreshold, MakeStatsOpts);

    OptionGroup* MarkPairsOpts = Options::CreateOptionGroup("MarkPairs Mode Options (disabled in -makeStats mode)");
    Options::AddOption("-force", forceMarkDescription, m_settings->HasForceMarkReadGroups, MarkPairsOpts);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x218, %rsp            # imm = 0x218
movq %rdi, %rbx
leaq 0x45037(%rip), %rax     # 0x8ea88
movq %rax, (%rdi)
movl $0xa8, %edi
callq 0x275c0
movq %rax, %r14
movq %rax, %rdi
callq 0x4af6a
movq %r14, 0x8(%rbx)
movq $0x0, 0x10(%rbx)
leaq 0x208(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a207(%rip), %rsi     # 0x73c8f
leaq 0x2a243(%rip), %rdx     # 0x73cd2
leaq 0x1f8(%rsp), %rdi
callq 0x2f1a0
leaq 0x1e8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a224(%rip), %rsi     # 0x73cd3
leaq 0x2a27b(%rip), %rdx     # 0x73d31
leaq 0x1d8(%rsp), %rdi
callq 0x2f1a0
leaq 0x1c8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x27a5b(%rip), %rsi     # 0x71531
leaq 0x27a69(%rip), %rdx     # 0x71546
leaq 0x1b8(%rsp), %rdi
callq 0x2f1a0
leaq 0x1a8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x27a80(%rip), %rsi     # 0x7157d
leaq 0x27a8c(%rip), %rdx     # 0x71590
leaq 0x198(%rsp), %rdi
callq 0x2f1a0
leaq 0x188(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a20e(%rip), %rsi     # 0x73d32
leaq 0x2a2d8(%rip), %rdx     # 0x73e03
leaq 0x178(%rsp), %rdi
callq 0x2f1a0
leaq 0x168(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a2b9(%rip), %rsi     # 0x73e04
leaq 0x2a382(%rip), %rdx     # 0x73ed4
leaq 0x158(%rsp), %rdi
callq 0x2f1a0
leaq 0x148(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a363(%rip), %rsi     # 0x73ed5
leaq 0x2a3f7(%rip), %rdx     # 0x73f70
leaq 0x138(%rsp), %rdi
callq 0x2f1a0
leaq 0x128(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a3d8(%rip), %rsi     # 0x73f71
leaq 0x2a47d(%rip), %rdx     # 0x7401d
leaq 0x118(%rsp), %rdi
callq 0x2f1a0
leaq 0x108(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a45e(%rip), %rsi     # 0x7401e
leaq 0x2a63a(%rip), %rdx     # 0x74201
leaq 0xf8(%rsp), %rdi
callq 0x2f1a0
leaq 0xe8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a61b(%rip), %rsi     # 0x74202
leaq 0x2a6bc(%rip), %rdx     # 0x742aa
leaq 0xd8(%rsp), %rdi
callq 0x2f1a0
leaq 0xc8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a69d(%rip), %rsi     # 0x742ab
leaq 0x2a6f3(%rip), %rdx     # 0x74308
leaq 0xb8(%rsp), %rdi
callq 0x2f1a0
leaq 0xa8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a6d4(%rip), %rsi     # 0x74309
leaq 0x2a8fa(%rip), %rdx     # 0x74536
leaq 0x98(%rsp), %rdi
callq 0x2f1a0
leaq 0x88(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2a8db(%rip), %rsi     # 0x74537
leaq 0x2ab25(%rip), %rdx     # 0x74788
leaq 0x78(%rsp), %rdi
callq 0x2f1a0
leaq 0x28(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x2ab0c(%rip), %rsi     # 0x74789
leaq 0x2ab15(%rip), %rdx     # 0x74799
leaq 0x18(%rsp), %rdi
callq 0x2f1a0
leaq 0x18(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
leaq 0x1d8(%rsp), %rdx
callq 0x64164
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x49cb7
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2784b(%rip), %rsi     # 0x71511
leaq 0x27852(%rip), %rdx     # 0x7151f
callq 0x2f1a0
leaq 0x18(%rsp), %rdi
callq 0x634cc
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x49cee
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x27823(%rip), %rsi     # 0x71520
leaq 0x2781f(%rip), %rdx     # 0x71523
callq 0x2f1a0
leaq 0x68(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x2780b(%rip), %rsi     # 0x71524
leaq 0x27810(%rip), %rdx     # 0x71530
leaq 0x58(%rsp), %rdi
callq 0x2f1a0
leaq 0x48(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2cadc(%rip), %rdx     # 0x76817
leaq 0x38(%rsp), %rdi
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r15
callq 0x641a2
leaq 0x10(%r15), %r9
addq $0x3, %r15
movq %rax, 0x8(%rsp)
movq %r14, (%rsp)
leaq 0x18(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x1b8(%rsp), %rdx
leaq 0x38(%rsp), %rcx
movq %r15, %r8
callq 0x2ebbe
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x49d90
callq 0x27560
movq 0x58(%rsp), %rdi
cmpq %rbp, %rdi
je 0x49d9f
callq 0x27560
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x49dae
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x277bb(%rip), %rsi     # 0x71578
leaq 0x277b8(%rip), %rdx     # 0x7157c
callq 0x2f1a0
leaq 0x58(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x2774c(%rip), %rsi     # 0x71524
leaq 0x27751(%rip), %rdx     # 0x71530
callq 0x2f1a0
leaq 0x38(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x2ca24(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r15
callq 0x641aa
leaq 0x30(%r15), %r9
addq $0x4, %r15
movq %rax, 0x8(%rsp)
movq %r14, (%rsp)
leaq 0x18(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x198(%rsp), %rdx
leaq 0x38(%rsp), %rcx
movq %r15, %r8
callq 0x2ebbe
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x49e43
callq 0x27560
movq 0x58(%rsp), %rdi
cmpq %rbp, %rdi
je 0x49e52
callq 0x27560
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x49e61
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a92a(%rip), %rsi     # 0x7479a
leaq 0x2a929(%rip), %rdx     # 0x747a0
callq 0x2f1a0
leaq 0x58(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x2a916(%rip), %rsi     # 0x747a1
leaq 0x2a91d(%rip), %rdx     # 0x747af
callq 0x2f1a0
leaq 0x38(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x2c971(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x5(%r9), %r8
addq $0x50, %r9
movq %r14, (%rsp)
leaq 0x18(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x178(%rsp), %rdx
leaq 0x38(%rsp), %rcx
callq 0x2e8c0
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x49ee9
callq 0x27560
movq 0x58(%rsp), %rdi
cmpq %rbp, %rdi
je 0x49ef8
callq 0x27560
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x49f07
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x281e1(%rip), %rsi     # 0x720f7
leaq 0x281eb(%rip), %rdx     # 0x72108
callq 0x2f1a0
movq 0x8(%rbx), %rdx
addq $0x6, %rdx
leaq 0x18(%rsp), %rdi
leaq 0x158(%rsp), %rsi
movq %r14, %rcx
callq 0x632c4
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x49f4e
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a853(%rip), %rsi     # 0x747b0
leaq 0x2a87c(%rip), %rdx     # 0x747e0
callq 0x2f1a0
leaq 0x18(%rsp), %rdi
callq 0x634cc
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x49f85
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a84d(%rip), %rsi     # 0x747e1
leaq 0x2a850(%rip), %rdx     # 0x747eb
callq 0x2f1a0
movq 0x8(%rbx), %rdx
leaq 0x18(%rsp), %rdi
leaq 0x138(%rsp), %rsi
movq %r14, %rcx
callq 0x632c4
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x49fc8
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a815(%rip), %rsi     # 0x747ec
leaq 0x2a818(%rip), %rdx     # 0x747f6
callq 0x2f1a0
movq 0x8(%rbx), %rdx
incq %rdx
leaq 0x18(%rsp), %rdi
leaq 0x118(%rsp), %rsi
movq %r14, %rcx
callq 0x632c4
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x4a00e
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a7da(%rip), %rsi     # 0x747f7
leaq 0x2a7db(%rip), %rdx     # 0x747ff
callq 0x2f1a0
movq 0x8(%rbx), %rdx
addq $0x2, %rdx
leaq 0x18(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
movq %r14, %rcx
callq 0x632c4
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x4a055
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a79c(%rip), %rsi     # 0x74800
leaq 0x2a7c5(%rip), %rdx     # 0x74830
callq 0x2f1a0
leaq 0x18(%rsp), %rdi
callq 0x634cc
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x4a08c
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a796(%rip), %rsi     # 0x74831
leaq 0x2a795(%rip), %rdx     # 0x74837
callq 0x2f1a0
leaq 0x58(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x2a782(%rip), %rsi     # 0x74838
leaq 0x2a789(%rip), %rdx     # 0x74846
callq 0x2f1a0
leaq 0x38(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x2c746(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x9(%r9), %r8
addq $0x98, %r9
movq %r14, (%rsp)
leaq 0x18(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
leaq 0x38(%rsp), %rcx
callq 0x4b090
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x4a117
callq 0x27560
movq 0x58(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4a126
callq 0x27560
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x4a135
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a703(%rip), %rsi     # 0x74847
leaq 0x2a730(%rip), %rdx     # 0x7487b
callq 0x2f1a0
leaq 0x18(%rsp), %rdi
callq 0x634cc
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x4a16c
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a701(%rip), %rsi     # 0x7487c
leaq 0x2a6fd(%rip), %rdx     # 0x7487f
callq 0x2f1a0
leaq 0x58(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x2c59b(%rip), %rsi     # 0x76731
leaq 0x2c59a(%rip), %rdx     # 0x76737
callq 0x2f1a0
leaq 0x38(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x2c666(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x7(%r9), %r8
addq $0x90, %r9
movq %r14, (%rsp)
leaq 0x18(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
leaq 0x38(%rsp), %rcx
callq 0x4b300
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x4a1f7
callq 0x27560
movq 0x58(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4a206
callq 0x27560
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x4a215
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a65c(%rip), %rsi     # 0x74880
leaq 0x2a659(%rip), %rdx     # 0x74884
callq 0x2f1a0
leaq 0x58(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x2c4f2(%rip), %rsi     # 0x76731
leaq 0x2c4f1(%rip), %rdx     # 0x76737
callq 0x2f1a0
leaq 0x38(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x2c5bd(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0xa(%r9), %r8
addq $0xa0, %r9
movq %r14, (%rsp)
leaq 0x18(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x98(%rsp), %rdx
leaq 0x38(%rsp), %rcx
callq 0x4b300
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x4a2a0
callq 0x27560
movq 0x58(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4a2af
callq 0x27560
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x4a2be
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a5b8(%rip), %rsi     # 0x74885
leaq 0x2a5e5(%rip), %rdx     # 0x748b9
callq 0x2f1a0
leaq 0x18(%rsp), %rdi
callq 0x634cc
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x4a2f5
callq 0x27560
leaq 0x18(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x2a5b6(%rip), %rsi     # 0x748ba
leaq 0x2a5b5(%rip), %rdx     # 0x748c0
callq 0x2f1a0
movq 0x8(%rbx), %rdx
addq $0x8, %rdx
leaq 0x18(%rsp), %rdi
leaq 0x78(%rsp), %rsi
movq %r14, %rcx
callq 0x632c4
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x4a339
callq 0x27560
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
leaq 0x208(%rsp), %rbx
leaq 0x1e8(%rsp), %r14
leaq 0x1c8(%rsp), %r15
je 0x4a368
callq 0x27560
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x4a382
callq 0x27560
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x4a39c
callq 0x27560
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x4a3b6
callq 0x27560
movq 0xf8(%rsp), %rdi
leaq 0x108(%rsp), %rax
cmpq %rax, %rdi
je 0x4a3d0
callq 0x27560
movq 0x118(%rsp), %rdi
leaq 0x128(%rsp), %rax
cmpq %rax, %rdi
je 0x4a3ea
callq 0x27560
movq 0x138(%rsp), %rdi
leaq 0x148(%rsp), %rax
cmpq %rax, %rdi
je 0x4a404
callq 0x27560
movq 0x158(%rsp), %rdi
leaq 0x168(%rsp), %rax
cmpq %rax, %rdi
je 0x4a41e
callq 0x27560
movq 0x178(%rsp), %rdi
leaq 0x188(%rsp), %rax
cmpq %rax, %rdi
je 0x4a438
callq 0x27560
movq 0x198(%rsp), %rdi
leaq 0x1a8(%rsp), %rax
cmpq %rax, %rdi
je 0x4a452
callq 0x27560
movq 0x1b8(%rsp), %rdi
cmpq %r15, %rdi
je 0x4a464
callq 0x27560
movq 0x1d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x4a476
callq 0x27560
movq 0x1f8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4a488
callq 0x27560
addq $0x218, %rsp            # imm = 0x218
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4a500
jmp 0x4a508
jmp 0x4a500
jmp 0x4a508
jmp 0x4a585
jmp 0x4a4f0
jmp 0x4a500
jmp 0x4a508
jmp 0x4a585
jmp 0x4a4f0
jmp 0x4a500
jmp 0x4a508
jmp 0x4a500
jmp 0x4a508
jmp 0x4a585
jmp 0x4a4f0
jmp 0x4a500
jmp 0x4a508
jmp 0x4a500
jmp 0x4a508
jmp 0x4a500
jmp 0x4a508
jmp 0x4a500
jmp 0x4a508
jmp 0x4a500
jmp 0x4a508
jmp 0x4a500
jmp 0x4a508
jmp 0x4a500
jmp 0x4a508
jmp 0x4a585
jmp 0x4a4f0
jmp 0x4a500
jmp 0x4a508
jmp 0x4a4f0
jmp 0x4a500
jmp 0x4a508
movq %rax, %rbx
jmp 0x4a597
jmp 0x4a500
jmp 0x4a508
jmp 0x4a500
jmp 0x4a508
movq %rax, %rbx
jmp 0x4a5a6
movq %rax, %rbx
jmp 0x4a5b5
movq %rax, %rbx
jmp 0x4a5cc
movq %rax, %rbx
jmp 0x4a5e6
movq %rax, %rbx
jmp 0x4a600
movq %rax, %rbx
jmp 0x4a61a
movq %rax, %rbx
jmp 0x4a634
movq %rax, %rbx
jmp 0x4a64e
movq %rax, %rbx
jmp 0x4a668
movq %rax, %rbx
jmp 0x4a682
movq %rax, %rbx
jmp 0x4a69c
movq %rax, %rbx
jmp 0x4a6b6
movq %rax, %rbx
jmp 0x4a6d0
movq %rax, %rbx
jmp 0x4a6ea
movq %rax, %rbx
jmp 0x4a704
movq %rax, %rbx
movq %r14, %rdi
jmp 0x4a6ff
jmp 0x4a585
movq %rax, %rbx
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x4a597
callq 0x27560
movq 0x58(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4a5a6
callq 0x27560
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x4a5b5
callq 0x27560
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x4a5cc
callq 0x27560
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x4a5e6
callq 0x27560
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x4a600
callq 0x27560
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x4a61a
callq 0x27560
movq 0xf8(%rsp), %rdi
leaq 0x108(%rsp), %rax
cmpq %rax, %rdi
je 0x4a634
callq 0x27560
movq 0x118(%rsp), %rdi
leaq 0x128(%rsp), %rax
cmpq %rax, %rdi
je 0x4a64e
callq 0x27560
movq 0x138(%rsp), %rdi
leaq 0x148(%rsp), %rax
cmpq %rax, %rdi
je 0x4a668
callq 0x27560
movq 0x158(%rsp), %rdi
leaq 0x168(%rsp), %rax
cmpq %rax, %rdi
je 0x4a682
callq 0x27560
movq 0x178(%rsp), %rdi
leaq 0x188(%rsp), %rax
cmpq %rax, %rdi
je 0x4a69c
callq 0x27560
movq 0x198(%rsp), %rdi
leaq 0x1a8(%rsp), %rax
cmpq %rax, %rdi
je 0x4a6b6
callq 0x27560
movq 0x1b8(%rsp), %rdi
leaq 0x1c8(%rsp), %rax
cmpq %rax, %rdi
je 0x4a6d0
callq 0x27560
movq 0x1d8(%rsp), %rdi
leaq 0x1e8(%rsp), %rax
cmpq %rax, %rdi
je 0x4a6ea
callq 0x27560
movq 0x1f8(%rsp), %rdi
leaq 0x208(%rsp), %rax
cmpq %rax, %rdi
je 0x4a704
callq 0x27560
movq %rbx, %rdi
callq 0x27b10