// File: /workspace/github_cpp_makefile_star2_O3/zeeev[P]DASVC/bamtools/src/toolkit/bamtools_filter.cpp
// Function: BamTools::FilterTool::FilterTool()
FilterTool::FilterTool(void)
    : AbstractTool()
    , m_settings(new FilterSettings)
    , m_impl(0)
{
    // ----------------------------------
    // set program details

    const string usage = "[-in <filename> -in <filename> ... | -list <filelist>] "
                         "[-out <filename> | [-forceCompression]] [-region <REGION>] "
                         "[ [-script <filename] | [filterOptions] ]";

    Options::SetProgramInfo("bamtools filter", "filters BAM file(s)", usage );

    // ----------------------------------
    // I/O options

    OptionGroup* IO_Opts = Options::CreateOptionGroup("Input & Output");

    const string inDesc     = "the input BAM file(s)";
    const string listDesc   = "the input BAM file list, one line per file";
    const string outDesc    = "the output BAM file";
    const string regionDesc = "only read data from this genomic region (see documentation for more details)";
    const string scriptDesc = "the filter script file (see documentation for more details)";
    const string forceDesc  = "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";

    Options::AddValueOption("-in",     "BAM filename", inDesc,     "", m_settings->HasInput,  m_settings->InputFiles,     IO_Opts, Options::StandardIn());
    Options::AddValueOption("-list",   "filename",     listDesc,   "", m_settings->HasInputFilelist,  m_settings->InputFilelist, IO_Opts);
    Options::AddValueOption("-out",    "BAM filename", outDesc,    "", m_settings->HasOutput, m_settings->OutputFilename, IO_Opts, Options::StandardOut());
    Options::AddValueOption("-region", "REGION",       regionDesc, "", m_settings->HasRegion, m_settings->Region,         IO_Opts);
    Options::AddValueOption("-script", "filename",     scriptDesc, "", m_settings->HasScript, m_settings->ScriptFilename, IO_Opts);
    Options::AddOption("-forceCompression",forceDesc, m_settings->IsForceCompression, IO_Opts);

    // ----------------------------------
    // general filter options

    OptionGroup* FilterOpts = Options::CreateOptionGroup("General Filters");

    const string flagDesc    = "keep reads with this *exact* alignment flag (for more detailed queries, see below)";
    const string insertDesc  = "keep reads with insert size that matches pattern";
    const string lengthDesc  = "keep reads with length that matches pattern";
    const string mapQualDesc = "keep reads with map quality that matches pattern";
    const string nameDesc    = "keep reads with name that matches pattern";
    const string queryDesc   = "keep reads with motif that matches pattern";
    const string tagDesc     = "keep reads with this key=>value pair";

    Options::AddValueOption("-alignmentFlag", "int",       flagDesc,    "", m_settings->HasAlignmentFlagFilter, m_settings->AlignmentFlagFilter, FilterOpts);
    Options::AddValueOption("-insertSize",    "int",       insertDesc,  "", m_settings->HasInsertSizeFilter,    m_settings->InsertSizeFilter,    FilterOpts);
    Options::AddValueOption("-length",        "int",       lengthDesc,  "", m_settings->HasLengthFilter,        m_settings->LengthFilter,        FilterOpts);
    Options::AddValueOption("-mapQuality",    "[0-255]",   mapQualDesc, "", m_settings->HasMapQualityFilter,    m_settings->MapQualityFilter,    FilterOpts);
    Options::AddValueOption("-name",          "string",    nameDesc,    "", m_settings->HasNameFilter,          m_settings->NameFilter,          FilterOpts);
    Options::AddValueOption("-queryBases",    "string",    queryDesc,   "", m_settings->HasQueryBasesFilter,    m_settings->QueryBasesFilter,    FilterOpts);
    Options::AddValueOption("-tag",           "TAG:VALUE", tagDesc,     "", m_settings->HasTagFilter,           m_settings->TagFilter,           FilterOpts);

    // ----------------------------------
    // alignment flag filter options

    OptionGroup* AlignmentFlagOpts = Options::CreateOptionGroup("Alignment Flag Filters");

    const string boolArg           = "true/false";
    const string isDupDesc         = "keep only alignments that are marked as duplicate?";
    const string isFailQcDesc      = "keep only alignments that failed QC?";
    const string isFirstMateDesc   = "keep only alignments marked as first mate?";
    const string isMappedDesc      = "keep only alignments that were mapped?";
    const string isMateMappedDesc  = "keep only alignments with mates that mapped";
    const string isMateReverseDesc = "keep only alignments with mate on reverese strand?";
    const string isPairedDesc      = "keep only alignments that were sequenced as paired?";
    const string isPrimaryDesc     = "keep only alignments marked as primary?";
    const string isProperPairDesc  = "keep only alignments that passed PE resolution?";
    const string isReverseDesc     = "keep only alignments on reverse strand?";
    const string isSecondMateDesc  = "keep only alignments marked as second mate?";
    const string isSingletonDesc   = "keep only singletons";

    Options::AddValueOption("-isDuplicate",         boolArg, isDupDesc,         "", m_settings->HasIsDuplicateFilter,         m_settings->IsDuplicateFilter,         AlignmentFlagOpts, TRUE_STR);
    Options::AddValueOption("-isFailedQC",          boolArg, isFailQcDesc,      "", m_settings->HasIsFailedQCFilter,          m_settings->IsFailedQCFilter,          AlignmentFlagOpts, TRUE_STR);
    Options::AddValueOption("-isFirstMate",         boolArg, isFirstMateDesc,   "", m_settings->HasIsFirstMateFilter,         m_settings->IsFirstMateFilter,         AlignmentFlagOpts, TRUE_STR);
    Options::AddValueOption("-isMapped",            boolArg, isMappedDesc,      "", m_settings->HasIsMappedFilter,            m_settings->IsMappedFilter,            AlignmentFlagOpts, TRUE_STR);
    Options::AddValueOption("-isMateMapped",        boolArg, isMateMappedDesc,  "", m_settings->HasIsMateMappedFilter,        m_settings->IsMateMappedFilter,        AlignmentFlagOpts, TRUE_STR);
    Options::AddValueOption("-isMateReverseStrand", boolArg, isMateReverseDesc, "", m_settings->HasIsMateReverseStrandFilter, m_settings->IsMateReverseStrandFilter, AlignmentFlagOpts, TRUE_STR);
    Options::AddValueOption("-isPaired",            boolArg, isPairedDesc,      "", m_settings->HasIsPairedFilter,            m_settings->IsPairedFilter,            AlignmentFlagOpts, TRUE_STR);
    Options::AddValueOption("-isPrimaryAlignment",  boolArg, isPrimaryDesc,     "", m_settings->HasIsPrimaryAlignmentFilter,  m_settings->IsPrimaryAlignmentFilter,  AlignmentFlagOpts, TRUE_STR);
    Options::AddValueOption("-isProperPair",        boolArg, isProperPairDesc,  "", m_settings->HasIsProperPairFilter,        m_settings->IsProperPairFilter,        AlignmentFlagOpts, TRUE_STR);
    Options::AddValueOption("-isReverseStrand",     boolArg, isReverseDesc,     "", m_settings->HasIsReverseStrandFilter,     m_settings->IsReverseStrandFilter,     AlignmentFlagOpts, TRUE_STR);
    Options::AddValueOption("-isSecondMate",        boolArg, isSecondMateDesc,  "", m_settings->HasIsSecondMateFilter,        m_settings->IsSecondMateFilter,        AlignmentFlagOpts, TRUE_STR);
    Options::AddValueOption("-isSingleton",         boolArg, isSingletonDesc,   "", m_settings->HasIsSingletonFilter,         m_settings->IsSingletonFilter,         AlignmentFlagOpts, TRUE_STR);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x3a8, %rsp            # imm = 0x3A8
movq %rdi, %rbx
leaq 0x59c6d(%rip), %rax     # 0x8e7d0
movq %rax, (%rdi)
movl $0x318, %edi            # imm = 0x318
callq 0x275c0
movq %rax, %r14
movq %rax, %rdi
callq 0x39cae
movq %r14, 0x8(%rbx)
movq $0x0, 0x10(%rbx)
leaq 0x398(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3d368(%rip), %rsi     # 0x71f02
leaq 0x3d3fc(%rip), %rdx     # 0x71f9d
leaq 0x388(%rsp), %rdi
callq 0x2f1a0
leaq 0x118(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x3d3dd(%rip), %rsi     # 0x71f9e
leaq 0x3d3e5(%rip), %rdx     # 0x71fad
leaq 0x108(%rsp), %rdi
callq 0x2f1a0
leaq 0x138(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x3d3c5(%rip), %rsi     # 0x71fae
leaq 0x3d3d1(%rip), %rdx     # 0x71fc1
leaq 0x128(%rsp), %rdi
callq 0x2f1a0
leaq 0x108(%rsp), %rdi
leaq 0x128(%rsp), %rsi
leaq 0x388(%rsp), %rdx
callq 0x64164
movq 0x128(%rsp), %rdi
cmpq %r12, %rdi
je 0x34c2c
callq 0x27560
movq 0x108(%rsp), %rdi
cmpq %r15, %rdi
je 0x34c3e
callq 0x27560
leaq 0x108(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3c8c1(%rip), %rsi     # 0x71511
leaq 0x3c8c8(%rip), %rdx     # 0x7151f
callq 0x2f1a0
leaq 0x108(%rsp), %rdi
callq 0x634cc
movq %rax, %r14
movq 0x108(%rsp), %rdi
cmpq %r15, %rdi
je 0x34c7e
callq 0x27560
leaq 0x108(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3c8a1(%rip), %rsi     # 0x71531
leaq 0x3c8af(%rip), %rdx     # 0x71546
callq 0x2f1a0
leaq 0x128(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3c89f(%rip), %rsi     # 0x7154d
leaq 0x3c8c2(%rip), %rdx     # 0x71577
callq 0x2f1a0
leaq 0x378(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3c8b0(%rip), %rsi     # 0x7157d
leaq 0x3c8bc(%rip), %rdx     # 0x71590
leaq 0x368(%rsp), %rdi
callq 0x2f1a0
leaq 0x358(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3d2ce(%rip), %rsi     # 0x71fc2
leaq 0x3d313(%rip), %rdx     # 0x7200e
leaq 0x348(%rsp), %rdi
callq 0x2f1a0
leaq 0x338(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3d2f4(%rip), %rsi     # 0x7200f
leaq 0x3d328(%rip), %rdx     # 0x7204a
leaq 0x328(%rsp), %rdi
callq 0x2f1a0
leaq 0x318(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3d309(%rip), %rsi     # 0x7204b
leaq 0x3d3a5(%rip), %rdx     # 0x720ee
leaq 0x308(%rsp), %rdi
callq 0x2f1a0
leaq 0x98(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x3c7b6(%rip), %rsi     # 0x71520
leaq 0x3c7b2(%rip), %rdx     # 0x71523
leaq 0x88(%rsp), %rdi
callq 0x2f1a0
leaq 0xf8(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x3c793(%rip), %rsi     # 0x71524
leaq 0x3c798(%rip), %rdx     # 0x71530
leaq 0xe8(%rsp), %rdi
callq 0x2f1a0
leaq 0xd8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x41a5f(%rip), %rdx     # 0x76817
leaq 0xc8(%rsp), %rdi
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r15
callq 0x641a2
leaq 0x8(%r15), %r9
leaq 0x88(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
leaq 0x108(%rsp), %rdx
leaq 0xc8(%rsp), %rcx
movq %r15, %r8
pushq %rax
pushq %r14
callq 0x2e4fe
addq $0x10, %rsp
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x34e16
callq 0x27560
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x34e28
callq 0x27560
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x34e3a
callq 0x27560
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3c6fb(%rip), %rsi     # 0x71547
leaq 0x3c6f9(%rip), %rdx     # 0x7154c
callq 0x2f1a0
leaq 0xe8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x3c79c(%rip), %rsi     # 0x71606
leaq 0x3c79d(%rip), %rdx     # 0x7160e
callq 0x2f1a0
leaq 0xc8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x4198f(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x1(%r9), %r8
addq $0x20, %r9
subq $0x8, %rsp
leaq 0x90(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
leaq 0x130(%rsp), %rdx
leaq 0xd0(%rsp), %rcx
pushq %r14
callq 0x2e8c0
addq $0x10, %rsp
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x34edd
callq 0x27560
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x34eef
callq 0x27560
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x34f01
callq 0x27560
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3c665(%rip), %rsi     # 0x71578
leaq 0x3c662(%rip), %rdx     # 0x7157c
callq 0x2f1a0
leaq 0xe8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x3c5f3(%rip), %rsi     # 0x71524
leaq 0x3c5f8(%rip), %rdx     # 0x71530
callq 0x2f1a0
leaq 0xc8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x418c8(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r15
callq 0x641aa
leaq 0x40(%r15), %r9
addq $0x2, %r15
leaq 0x88(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
leaq 0x368(%rsp), %rdx
leaq 0xc8(%rsp), %rcx
movq %r15, %r8
pushq %rax
pushq %r14
callq 0x2ebbe
addq $0x10, %rsp
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x34fa9
callq 0x27560
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x34fbb
callq 0x27560
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x34fcd
callq 0x27560
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3c5fc(%rip), %rsi     # 0x715db
leaq 0x3c5fc(%rip), %rdx     # 0x715e2
callq 0x2f1a0
leaq 0xe8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x3c5e6(%rip), %rsi     # 0x715e3
leaq 0x3c5e5(%rip), %rdx     # 0x715e9
callq 0x2f1a0
leaq 0xc8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x417fc(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x3(%r9), %r8
addq $0x60, %r9
subq $0x8, %rsp
leaq 0x90(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
leaq 0x350(%rsp), %rdx
leaq 0xd0(%rsp), %rcx
pushq %r14
callq 0x2e8c0
addq $0x10, %rsp
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35070
callq 0x27560
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x35082
callq 0x27560
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x35094
callq 0x27560
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d049(%rip), %rsi     # 0x720ef
leaq 0x3d049(%rip), %rdx     # 0x720f6
callq 0x2f1a0
leaq 0xe8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x3c542(%rip), %rsi     # 0x71606
leaq 0x3c543(%rip), %rdx     # 0x7160e
callq 0x2f1a0
leaq 0xc8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x41735(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x4(%r9), %r8
subq $-0x80, %r9
subq $0x8, %rsp
leaq 0x90(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
leaq 0x330(%rsp), %rdx
leaq 0xd0(%rsp), %rcx
pushq %r14
callq 0x2e8c0
addq $0x10, %rsp
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35137
callq 0x27560
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x35149
callq 0x27560
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x3515b
callq 0x27560
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3cf8a(%rip), %rsi     # 0x720f7
leaq 0x3cf94(%rip), %rdx     # 0x72108
callq 0x2f1a0
movq 0x8(%rbx), %rdx
addq $0x5, %rdx
leaq 0x88(%rsp), %rdi
leaq 0x308(%rsp), %rsi
movq %r14, %rcx
callq 0x632c4
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x351ab
callq 0x27560
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3cf4c(%rip), %rsi     # 0x72109
leaq 0x3cf54(%rip), %rdx     # 0x72118
callq 0x2f1a0
leaq 0x88(%rsp), %rdi
callq 0x634cc
movq %rax, %r14
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x351eb
callq 0x27560
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3cf1c(%rip), %rsi     # 0x72119
leaq 0x3cf67(%rip), %rdx     # 0x7216b
callq 0x2f1a0
leaq 0xe8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x3cf51(%rip), %rsi     # 0x7216c
leaq 0x3cf7a(%rip), %rdx     # 0x7219c
callq 0x2f1a0
leaq 0xc8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x3cf64(%rip), %rsi     # 0x7219d
leaq 0x3cf88(%rip), %rdx     # 0x721c8
callq 0x2f1a0
leaq 0x2f8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3cf71(%rip), %rsi     # 0x721c9
leaq 0x3cf9a(%rip), %rdx     # 0x721f9
leaq 0x2e8(%rsp), %rdi
callq 0x2f1a0
leaq 0x2d8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3cf7b(%rip), %rsi     # 0x721fa
leaq 0x3cf9d(%rip), %rdx     # 0x72223
leaq 0x2c8(%rsp), %rdi
callq 0x2f1a0
leaq 0x2b8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3cf7e(%rip), %rsi     # 0x72224
leaq 0x3cfa1(%rip), %rdx     # 0x7224e
leaq 0x2a8(%rsp), %rdi
callq 0x2f1a0
leaq 0x298(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3cf82(%rip), %rsi     # 0x7224f
leaq 0x3cf9f(%rip), %rdx     # 0x72273
leaq 0x288(%rsp), %rdi
callq 0x2f1a0
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x3cf83(%rip), %rsi     # 0x72274
leaq 0x3cf8a(%rip), %rdx     # 0x72282
leaq 0x8(%rsp), %rdi
callq 0x2f1a0
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x41382(%rip), %rsi     # 0x76695
leaq 0x4137e(%rip), %rdx     # 0x76698
leaq 0x68(%rsp), %rdi
callq 0x2f1a0
leaq 0xb8(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x414e0(%rip), %rdx     # 0x76817
leaq 0xa8(%rsp), %rdi
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0xa0(%r9), %r8
addq $0xa8, %r9
subq $0x8, %rsp
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x90(%rsp), %rdx
leaq 0xb0(%rsp), %rcx
pushq %r14
callq 0x2e8c0
addq $0x10, %rsp
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x35394
callq 0x27560
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x353a3
callq 0x27560
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x353b2
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3cec2(%rip), %rsi     # 0x72283
leaq 0x3cec6(%rip), %rdx     # 0x7228e
callq 0x2f1a0
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x412b9(%rip), %rsi     # 0x76695
leaq 0x412b5(%rip), %rdx     # 0x76698
callq 0x2f1a0
leaq 0xa8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x4141d(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0xa1(%r9), %r8
addq $0xc8, %r9
subq $0x8, %rsp
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xf0(%rsp), %rdx
leaq 0xb0(%rsp), %rcx
pushq %r14
callq 0x2e8c0
addq $0x10, %rsp
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x3544f
callq 0x27560
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x3545e
callq 0x27560
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x3546d
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3ce13(%rip), %rsi     # 0x7228f
leaq 0x3ce13(%rip), %rdx     # 0x72296
callq 0x2f1a0
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x411fe(%rip), %rsi     # 0x76695
leaq 0x411fa(%rip), %rdx     # 0x76698
callq 0x2f1a0
leaq 0xa8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x41362(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0xa2(%r9), %r8
addq $0xe8, %r9
subq $0x8, %rsp
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0xd0(%rsp), %rdx
leaq 0xb0(%rsp), %rcx
pushq %r14
callq 0x2e8c0
addq $0x10, %rsp
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x3550a
callq 0x27560
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x35519
callq 0x27560
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x35528
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3cd60(%rip), %rsi     # 0x72297
leaq 0x3cd64(%rip), %rdx     # 0x722a2
callq 0x2f1a0
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3cd51(%rip), %rsi     # 0x722a3
leaq 0x3cd51(%rip), %rdx     # 0x722aa
callq 0x2f1a0
leaq 0xa8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x412a7(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0xa3(%r9), %r8
addq $0x108, %r9             # imm = 0x108
subq $0x8, %rsp
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x2f0(%rsp), %rdx
leaq 0xb0(%rsp), %rcx
pushq %r14
callq 0x2e8c0
addq $0x10, %rsp
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x355c5
callq 0x27560
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x355d4
callq 0x27560
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x355e3
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3ccb9(%rip), %rsi     # 0x722ab
leaq 0x3ccb7(%rip), %rdx     # 0x722b0
callq 0x2f1a0
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x40d56(%rip), %rsi     # 0x76363
leaq 0x40d55(%rip), %rdx     # 0x76369
callq 0x2f1a0
leaq 0xa8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x411ec(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0xa4(%r9), %r8
addq $0x128, %r9             # imm = 0x128
subq $0x8, %rsp
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x2d0(%rsp), %rdx
leaq 0xb0(%rsp), %rcx
pushq %r14
callq 0x2e8c0
addq $0x10, %rsp
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x35680
callq 0x27560
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x3568f
callq 0x27560
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x3569e
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3cc04(%rip), %rsi     # 0x722b1
leaq 0x3cc08(%rip), %rdx     # 0x722bc
callq 0x2f1a0
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x40c9b(%rip), %rsi     # 0x76363
leaq 0x40c9a(%rip), %rdx     # 0x76369
callq 0x2f1a0
leaq 0xa8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x41131(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0xa5(%r9), %r8
addq $0x148, %r9             # imm = 0x148
subq $0x8, %rsp
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x2b0(%rsp), %rdx
leaq 0xb0(%rsp), %rcx
pushq %r14
callq 0x2e8c0
addq $0x10, %rsp
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x3573b
callq 0x27560
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x3574a
callq 0x27560
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x35759
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3cb55(%rip), %rsi     # 0x722bd
leaq 0x3cb52(%rip), %rdx     # 0x722c1
callq 0x2f1a0
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3cb3f(%rip), %rsi     # 0x722c2
leaq 0x3cb41(%rip), %rdx     # 0x722cb
callq 0x2f1a0
leaq 0xa8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x41076(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0xa6(%r9), %r8
addq $0x168, %r9             # imm = 0x168
subq $0x8, %rsp
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x290(%rsp), %rdx
leaq 0xb0(%rsp), %rcx
pushq %r14
callq 0x2e8c0
addq $0x10, %rsp
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x357f6
callq 0x27560
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x35805
callq 0x27560
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x35814
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3caa9(%rip), %rsi     # 0x722cc
leaq 0x3cab8(%rip), %rdx     # 0x722e2
callq 0x2f1a0
leaq 0x8(%rsp), %rdi
callq 0x634cc
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x3584b
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3ca89(%rip), %rsi     # 0x722e3
leaq 0x3ca8c(%rip), %rdx     # 0x722ed
callq 0x2f1a0
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3ca79(%rip), %rsi     # 0x722ee
leaq 0x3caa4(%rip), %rdx     # 0x72320
callq 0x2f1a0
leaq 0xa8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x3ca8e(%rip), %rsi     # 0x72321
leaq 0x3caab(%rip), %rdx     # 0x72345
callq 0x2f1a0
leaq 0x278(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3ca94(%rip), %rsi     # 0x72346
leaq 0x3cab7(%rip), %rdx     # 0x72370
leaq 0x268(%rsp), %rdi
callq 0x2f1a0
leaq 0x258(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3ca98(%rip), %rsi     # 0x72371
leaq 0x3cab7(%rip), %rdx     # 0x72397
leaq 0x248(%rsp), %rdi
callq 0x2f1a0
leaq 0x238(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3ca98(%rip), %rsi     # 0x72398
leaq 0x3cabc(%rip), %rdx     # 0x723c3
leaq 0x228(%rsp), %rdi
callq 0x2f1a0
leaq 0x218(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3ca9d(%rip), %rsi     # 0x723c4
leaq 0x3cac8(%rip), %rdx     # 0x723f6
leaq 0x208(%rsp), %rdi
callq 0x2f1a0
leaq 0x1f8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3caa9(%rip), %rsi     # 0x723f7
leaq 0x3cad5(%rip), %rdx     # 0x7242a
leaq 0x1e8(%rsp), %rdi
callq 0x2f1a0
leaq 0x1d8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3cab6(%rip), %rsi     # 0x7242b
leaq 0x3cad6(%rip), %rdx     # 0x72452
leaq 0x1c8(%rsp), %rdi
callq 0x2f1a0
leaq 0x1b8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3cab7(%rip), %rsi     # 0x72453
leaq 0x3cadf(%rip), %rdx     # 0x72482
leaq 0x1a8(%rsp), %rdi
callq 0x2f1a0
leaq 0x198(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3cac0(%rip), %rsi     # 0x72483
leaq 0x3cae0(%rip), %rdx     # 0x724aa
leaq 0x188(%rsp), %rdi
callq 0x2f1a0
leaq 0x178(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3cac1(%rip), %rsi     # 0x724ab
leaq 0x3cae5(%rip), %rdx     # 0x724d6
leaq 0x168(%rsp), %rdi
callq 0x2f1a0
leaq 0x158(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3cac6(%rip), %rsi     # 0x724d7
leaq 0x3cad3(%rip), %rdx     # 0x724eb
leaq 0x148(%rsp), %rdi
callq 0x2f1a0
leaq 0x58(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x3cab6(%rip), %rsi     # 0x724ec
leaq 0x3cabb(%rip), %rdx     # 0x724f8
leaq 0x48(%rsp), %rdi
callq 0x2f1a0
leaq 0x38(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x40dc0(%rip), %rdx     # 0x76817
leaq 0x28(%rsp), %rdi
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x188(%r9), %r8
addq $0x198, %r9             # imm = 0x198
leaq 0x59fcb(%rip), %r15     # 0x8fa48
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x68(%rsp), %rdx
leaq 0x28(%rsp), %rcx
pushq %r15
pushq %r14
callq 0x2ebbe
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35aad
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35abc
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3ca2e(%rip), %rsi     # 0x724f9
leaq 0x3ca32(%rip), %rdx     # 0x72504
callq 0x2f1a0
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x40d31(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x189(%r9), %r8
addq $0x1b8, %r9             # imm = 0x1B8
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
pushq %r15
pushq %r14
callq 0x2ebbe
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35b33
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35b42
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3c9b4(%rip), %rsi     # 0x72505
leaq 0x3c9b9(%rip), %rdx     # 0x72511
callq 0x2f1a0
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x40cab(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x18a(%r9), %r8
addq $0x1d8, %r9             # imm = 0x1D8
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x268(%rsp), %rdx
leaq 0x28(%rsp), %rcx
pushq %r15
pushq %r14
callq 0x2ebbe
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35bb9
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35bc8
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3c93b(%rip), %rsi     # 0x72512
leaq 0x3c93d(%rip), %rdx     # 0x7251b
callq 0x2f1a0
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x40c25(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x18b(%r9), %r8
addq $0x1f8, %r9             # imm = 0x1F8
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x248(%rsp), %rdx
leaq 0x28(%rsp), %rcx
pushq %r15
pushq %r14
callq 0x2ebbe
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35c3f
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35c4e
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3c8bf(%rip), %rsi     # 0x7251c
leaq 0x3c8c5(%rip), %rdx     # 0x72529
callq 0x2f1a0
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x40b9f(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x18c(%r9), %r8
addq $0x218, %r9             # imm = 0x218
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x228(%rsp), %rdx
leaq 0x28(%rsp), %rcx
pushq %r15
pushq %r14
callq 0x2ebbe
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35cc5
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35cd4
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3c847(%rip), %rsi     # 0x7252a
leaq 0x3c854(%rip), %rdx     # 0x7253e
callq 0x2f1a0
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x40b19(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x18d(%r9), %r8
addq $0x238, %r9             # imm = 0x238
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x208(%rsp), %rdx
leaq 0x28(%rsp), %rcx
pushq %r15
pushq %r14
callq 0x2ebbe
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35d4b
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35d5a
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3c7d6(%rip), %rsi     # 0x7253f
leaq 0x3c7d8(%rip), %rdx     # 0x72548
callq 0x2f1a0
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x40a93(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x18e(%r9), %r8
addq $0x258, %r9             # imm = 0x258
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x1e8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
pushq %r15
pushq %r14
callq 0x2ebbe
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35dd1
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35de0
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3c75a(%rip), %rsi     # 0x72549
leaq 0x3c766(%rip), %rdx     # 0x7255c
callq 0x2f1a0
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x40a0d(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x18f(%r9), %r8
addq $0x278, %r9             # imm = 0x278
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x1c8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
pushq %r15
pushq %r14
callq 0x2ebbe
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35e57
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35e66
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3c6e8(%rip), %rsi     # 0x7255d
leaq 0x3c6ee(%rip), %rdx     # 0x7256a
callq 0x2f1a0
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x40987(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x190(%r9), %r8
addq $0x298, %r9             # imm = 0x298
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x1a8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
pushq %r15
pushq %r14
callq 0x2ebbe
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35edd
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35eec
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3c670(%rip), %rsi     # 0x7256b
leaq 0x3c679(%rip), %rdx     # 0x7257b
callq 0x2f1a0
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x40901(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x191(%r9), %r8
addq $0x2b8, %r9             # imm = 0x2B8
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x188(%rsp), %rdx
leaq 0x28(%rsp), %rcx
pushq %r15
pushq %r14
callq 0x2ebbe
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35f63
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35f72
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3c5fb(%rip), %rsi     # 0x7257c
leaq 0x3c601(%rip), %rdx     # 0x72589
callq 0x2f1a0
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x4087b(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x192(%r9), %r8
addq $0x2d8, %r9             # imm = 0x2D8
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x168(%rsp), %rdx
leaq 0x28(%rsp), %rcx
pushq %r15
pushq %r14
callq 0x2ebbe
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35fe9
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35ff8
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3c583(%rip), %rsi     # 0x7258a
leaq 0x3c588(%rip), %rdx     # 0x72596
callq 0x2f1a0
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x407f5(%rip), %rdx     # 0x76817
movq %rdx, %rsi
callq 0x2f1a0
movq 0x8(%rbx), %r9
leaq 0x193(%r9), %r8
addq $0x2f8, %r9             # imm = 0x2F8
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x148(%rsp), %rdx
leaq 0x28(%rsp), %rcx
pushq %r15
pushq %r14
callq 0x2ebbe
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3606f
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
leaq 0x398(%rsp), %rbx
leaq 0x118(%rsp), %r14
leaq 0x138(%rsp), %r15
leaq 0x378(%rsp), %r12
leaq 0x358(%rsp), %rbp
je 0x360a6
callq 0x27560
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x360c0
callq 0x27560
movq 0x168(%rsp), %rdi
leaq 0x178(%rsp), %rax
cmpq %rax, %rdi
je 0x360da
callq 0x27560
movq 0x188(%rsp), %rdi
leaq 0x198(%rsp), %rax
cmpq %rax, %rdi
je 0x360f4
callq 0x27560
movq 0x1a8(%rsp), %rdi
leaq 0x1b8(%rsp), %rax
cmpq %rax, %rdi
je 0x3610e
callq 0x27560
movq 0x1c8(%rsp), %rdi
leaq 0x1d8(%rsp), %rax
cmpq %rax, %rdi
je 0x36128
callq 0x27560
movq 0x1e8(%rsp), %rdi
leaq 0x1f8(%rsp), %rax
cmpq %rax, %rdi
je 0x36142
callq 0x27560
movq 0x208(%rsp), %rdi
leaq 0x218(%rsp), %rax
cmpq %rax, %rdi
je 0x3615c
callq 0x27560
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x36176
callq 0x27560
movq 0x248(%rsp), %rdi
leaq 0x258(%rsp), %rax
cmpq %rax, %rdi
je 0x36190
callq 0x27560
movq 0x268(%rsp), %rdi
leaq 0x278(%rsp), %rax
cmpq %rax, %rdi
je 0x361aa
callq 0x27560
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x361bc
callq 0x27560
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x361d0
callq 0x27560
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x361e4
callq 0x27560
movq 0x288(%rsp), %rdi
leaq 0x298(%rsp), %rax
cmpq %rax, %rdi
je 0x361fe
callq 0x27560
movq 0x2a8(%rsp), %rdi
leaq 0x2b8(%rsp), %rax
cmpq %rax, %rdi
je 0x36218
callq 0x27560
movq 0x2c8(%rsp), %rdi
leaq 0x2d8(%rsp), %rax
cmpq %rax, %rdi
je 0x36232
callq 0x27560
movq 0x2e8(%rsp), %rdi
leaq 0x2f8(%rsp), %rax
cmpq %rax, %rdi
je 0x3624c
callq 0x27560
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x36266
callq 0x27560
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x36280
callq 0x27560
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x3629a
callq 0x27560
movq 0x308(%rsp), %rdi
leaq 0x318(%rsp), %rax
cmpq %rax, %rdi
je 0x362b4
callq 0x27560
movq 0x328(%rsp), %rdi
leaq 0x338(%rsp), %rax
cmpq %rax, %rdi
je 0x362ce
callq 0x27560
movq 0x348(%rsp), %rdi
cmpq %rbp, %rdi
je 0x362e0
callq 0x27560
movq 0x368(%rsp), %rdi
cmpq %r12, %rdi
je 0x362f2
callq 0x27560
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x36304
callq 0x27560
movq 0x108(%rsp), %rdi
cmpq %r14, %rdi
je 0x36316
callq 0x27560
movq 0x388(%rsp), %rdi
cmpq %rbx, %rdi
je 0x36328
callq 0x27560
addq $0x3a8, %rsp            # imm = 0x3A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36351
callq 0x27560
jmp 0x36351
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x3654c
jmp 0x36542
jmp 0x36549
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36380
callq 0x27560
jmp 0x36380
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x3654c
jmp 0x36542
jmp 0x36549
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x363af
callq 0x27560
jmp 0x363af
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x3654c
jmp 0x36542
jmp 0x36549
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x363de
callq 0x27560
jmp 0x363de
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x3654c
jmp 0x36542
jmp 0x36549
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3640d
callq 0x27560
jmp 0x3640d
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x3654c
jmp 0x36542
jmp 0x36549
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3643c
callq 0x27560
jmp 0x3643c
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x3654c
jmp 0x36542
jmp 0x36549
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3646b
callq 0x27560
jmp 0x3646b
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x3654c
jmp 0x36542
jmp 0x36549
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3649a
callq 0x27560
jmp 0x3649a
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x3654c
jmp 0x36542
jmp 0x36549
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x364c9
callq 0x27560
jmp 0x364c9
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x3654c
jmp 0x36542
jmp 0x36549
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x364ee
callq 0x27560
jmp 0x364ee
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x3654c
jmp 0x36542
jmp 0x36549
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36513
callq 0x27560
jmp 0x36513
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x3654c
jmp 0x36542
jmp 0x36549
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36538
callq 0x27560
jmp 0x36538
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x3654c
callq 0x27560
jmp 0x3654c
movq %rax, %rbx
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x36566
callq 0x27560
movq 0x168(%rsp), %rdi
leaq 0x178(%rsp), %rax
cmpq %rax, %rdi
je 0x36580
callq 0x27560
movq 0x188(%rsp), %rdi
leaq 0x198(%rsp), %rax
cmpq %rax, %rdi
je 0x3659a
callq 0x27560
movq 0x1a8(%rsp), %rdi
leaq 0x1b8(%rsp), %rax
cmpq %rax, %rdi
je 0x365b4
callq 0x27560
movq 0x1c8(%rsp), %rdi
leaq 0x1d8(%rsp), %rax
cmpq %rax, %rdi
je 0x365ce
callq 0x27560
movq 0x1e8(%rsp), %rdi
leaq 0x1f8(%rsp), %rax
cmpq %rax, %rdi
je 0x365e8
callq 0x27560
movq 0x208(%rsp), %rdi
leaq 0x218(%rsp), %rax
cmpq %rax, %rdi
je 0x36602
callq 0x27560
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x3661c
callq 0x27560
movq 0x248(%rsp), %rdi
leaq 0x258(%rsp), %rax
cmpq %rax, %rdi
je 0x36636
callq 0x27560
movq 0x268(%rsp), %rdi
leaq 0x278(%rsp), %rax
cmpq %rax, %rdi
je 0x36650
callq 0x27560
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x36662
callq 0x27560
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x36676
callq 0x27560
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x368e7
callq 0x27560
jmp 0x368e7
movq %rax, %rbx
jmp 0x36566
movq %rax, %rbx
jmp 0x36580
movq %rax, %rbx
jmp 0x3659a
movq %rax, %rbx
jmp 0x365b4
movq %rax, %rbx
jmp 0x365ce
movq %rax, %rbx
jmp 0x365e8
movq %rax, %rbx
jmp 0x36602
movq %rax, %rbx
jmp 0x3661c
movq %rax, %rbx
jmp 0x36636
movq %rax, %rbx
jmp 0x36650
movq %rax, %rbx
jmp 0x36662
movq %rax, %rbx
jmp 0x36676
jmp 0x368e4
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x368e7
jmp 0x36689
jmp 0x368e4
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x36727
callq 0x27560
jmp 0x36727
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x3673b
callq 0x27560
jmp 0x3673b
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x368e7
jmp 0x36689
jmp 0x368e4
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x3676d
callq 0x27560
jmp 0x3676d
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x36781
callq 0x27560
jmp 0x36781
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x368e7
jmp 0x36689
jmp 0x368e4
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x367b3
callq 0x27560
jmp 0x367b3
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x367c7
callq 0x27560
jmp 0x367c7
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x368e7
jmp 0x36689
jmp 0x368e4
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x367f9
callq 0x27560
jmp 0x367f9
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x3680d
callq 0x27560
jmp 0x3680d
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x368e7
jmp 0x36689
jmp 0x368e4
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x3683f
callq 0x27560
jmp 0x3683f
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x36853
callq 0x27560
jmp 0x36853
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x368e7
jmp 0x36689
jmp 0x368e4
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x36882
callq 0x27560
jmp 0x36882
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x36896
callq 0x27560
jmp 0x36896
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x368e7
jmp 0x36689
jmp 0x368e4
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x368c1
callq 0x27560
jmp 0x368c1
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x368d5
callq 0x27560
jmp 0x368d5
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x368e7
jmp 0x36689
movq %rax, %rbx
movq 0x288(%rsp), %rdi
leaq 0x298(%rsp), %rax
cmpq %rax, %rdi
je 0x36901
callq 0x27560
movq 0x2a8(%rsp), %rdi
leaq 0x2b8(%rsp), %rax
cmpq %rax, %rdi
je 0x3691b
callq 0x27560
movq 0x2c8(%rsp), %rdi
leaq 0x2d8(%rsp), %rax
cmpq %rax, %rdi
je 0x36935
callq 0x27560
movq 0x2e8(%rsp), %rdi
leaq 0x2f8(%rsp), %rax
cmpq %rax, %rdi
je 0x3694f
callq 0x27560
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x36969
callq 0x27560
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x36983
callq 0x27560
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x3699d
callq 0x27560
movq 0x308(%rsp), %rdi
leaq 0x318(%rsp), %rax
cmpq %rax, %rdi
je 0x369b7
callq 0x27560
movq 0x328(%rsp), %rdi
leaq 0x338(%rsp), %rax
cmpq %rax, %rdi
je 0x369d1
callq 0x27560
movq 0x348(%rsp), %rdi
leaq 0x358(%rsp), %rax
cmpq %rax, %rdi
je 0x369eb
callq 0x27560
movq 0x368(%rsp), %rdi
leaq 0x378(%rsp), %rax
cmpq %rax, %rdi
je 0x36a05
callq 0x27560
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x36a1f
callq 0x27560
movq 0x108(%rsp), %rdi
leaq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x36a39
callq 0x27560
movq 0x388(%rsp), %rdi
leaq 0x398(%rsp), %rax
cmpq %rax, %rdi
je 0x36a53
callq 0x27560
movq %rbx, %rdi
callq 0x27b10
movq %rax, %rbx
jmp 0x36901
movq %rax, %rbx
jmp 0x3691b
movq %rax, %rbx
jmp 0x36935
movq %rax, %rbx
jmp 0x3694f
movq %rax, %rbx
jmp 0x36969
movq %rax, %rbx
jmp 0x36983
jmp 0x36bcc
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x3699d
jmp 0x36998
jmp 0x36bcc
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x3699d
jmp 0x36998
jmp 0x36bcc
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36ae6
callq 0x27560
jmp 0x36ae6
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x36afd
callq 0x27560
jmp 0x36afd
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x3699d
jmp 0x36998
jmp 0x36bcc
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36b32
callq 0x27560
jmp 0x36b32
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x36b49
callq 0x27560
jmp 0x36b49
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x3699d
jmp 0x36998
jmp 0x36bcc
movq %rax, %rbx
jmp 0x36c79
movq %rax, %rbx
jmp 0x36c8b
jmp 0x36bcc
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36b8d
callq 0x27560
jmp 0x36b8d
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x36ba4
callq 0x27560
jmp 0x36ba4
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x3699d
jmp 0x36998
jmp 0x36bcc
movq %rax, %rbx
jmp 0x36cb6
movq %rax, %rbx
jmp 0x36cc8
movq %rax, %rbx
jmp 0x3699d
movq %rax, %rbx
jmp 0x369b7
movq %rax, %rbx
jmp 0x369d1
movq %rax, %rbx
jmp 0x369eb
movq %rax, %rbx
jmp 0x36a05
movq %rax, %rbx
jmp 0x36a1f
jmp 0x36c49
movq %rax, %rbx
movq 0x108(%rsp), %rdi
cmpq %r15, %rdi
je 0x36a39
jmp 0x36a34
jmp 0x36c49
movq %rax, %rbx
movq 0x128(%rsp), %rdi
cmpq %r12, %rdi
je 0x36c33
callq 0x27560
jmp 0x36c33
movq %rax, %rbx
movq 0x108(%rsp), %rdi
cmpq %r15, %rdi
je 0x36a39
jmp 0x36a34
movq %rax, %rbx
jmp 0x36a39
movq %rax, %rbx
jmp 0x36a53
movq %rax, %rbx
movq %r14, %rdi
jmp 0x36a4e
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36c79
callq 0x27560
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x36c8b
callq 0x27560
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x3699d
jmp 0x36998
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36cb6
callq 0x27560
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x36cc8
callq 0x27560
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x3699d
jmp 0x36998