// File: /workspace/github_cpp_makefile_star2_O1/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 0x5ac35(%rip), %rax     # 0x8f7d0
movq %rax, (%rdi)
movl $0x318, %edi            # imm = 0x318
callq 0x275c0
movq %rax, %r14
movq %rax, %rdi
callq 0x39d26
movq %r14, 0x8(%rbx)
movq $0x0, 0x10(%rbx)
leaq 0x398(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3e330(%rip), %rsi     # 0x72f02
leaq 0x3e3c4(%rip), %rdx     # 0x72f9d
leaq 0x388(%rsp), %rdi
callq 0x2f1b2
leaq 0x118(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x3e3a5(%rip), %rsi     # 0x72f9e
leaq 0x3e3ad(%rip), %rdx     # 0x72fad
leaq 0x108(%rsp), %rdi
callq 0x2f1b2
leaq 0x138(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x3e38d(%rip), %rsi     # 0x72fae
leaq 0x3e399(%rip), %rdx     # 0x72fc1
leaq 0x128(%rsp), %rdi
callq 0x2f1b2
leaq 0x108(%rsp), %rdi
leaq 0x128(%rsp), %rsi
leaq 0x388(%rsp), %rdx
callq 0x646a4
movq 0x128(%rsp), %rdi
cmpq %r12, %rdi
je 0x34c64
callq 0x27560
movq 0x108(%rsp), %rdi
cmpq %r15, %rdi
je 0x34c76
callq 0x27560
leaq 0x108(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3d889(%rip), %rsi     # 0x72511
leaq 0x3d890(%rip), %rdx     # 0x7251f
callq 0x2f1b2
leaq 0x108(%rsp), %rdi
callq 0x63a0c
movq %rax, %r14
movq 0x108(%rsp), %rdi
cmpq %r15, %rdi
je 0x34cb6
callq 0x27560
leaq 0x108(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3d869(%rip), %rsi     # 0x72531
leaq 0x3d877(%rip), %rdx     # 0x72546
callq 0x2f1b2
leaq 0x128(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d867(%rip), %rsi     # 0x7254d
leaq 0x3d88a(%rip), %rdx     # 0x72577
callq 0x2f1b2
leaq 0x378(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3d878(%rip), %rsi     # 0x7257d
leaq 0x3d884(%rip), %rdx     # 0x72590
leaq 0x368(%rsp), %rdi
callq 0x2f1b2
leaq 0x358(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3e296(%rip), %rsi     # 0x72fc2
leaq 0x3e2db(%rip), %rdx     # 0x7300e
leaq 0x348(%rsp), %rdi
callq 0x2f1b2
leaq 0x338(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3e2bc(%rip), %rsi     # 0x7300f
leaq 0x3e2f0(%rip), %rdx     # 0x7304a
leaq 0x328(%rsp), %rdi
callq 0x2f1b2
leaq 0x318(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3e2d1(%rip), %rsi     # 0x7304b
leaq 0x3e36d(%rip), %rdx     # 0x730ee
leaq 0x308(%rsp), %rdi
callq 0x2f1b2
leaq 0x98(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x3d77e(%rip), %rsi     # 0x72520
leaq 0x3d77a(%rip), %rdx     # 0x72523
leaq 0x88(%rsp), %rdi
callq 0x2f1b2
leaq 0xf8(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x3d75b(%rip), %rsi     # 0x72524
leaq 0x3d760(%rip), %rdx     # 0x72530
leaq 0xe8(%rsp), %rdi
callq 0x2f1b2
leaq 0xd8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x42a2b(%rip), %rdx     # 0x7781b
leaq 0xc8(%rsp), %rdi
movq %rdx, %rsi
callq 0x2f1b2
movq 0x8(%rbx), %r15
callq 0x646e2
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 0x2e4f6
addq $0x10, %rsp
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x34e4e
callq 0x27560
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x34e60
callq 0x27560
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x34e72
callq 0x27560
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d6c3(%rip), %rsi     # 0x72547
leaq 0x3d6c1(%rip), %rdx     # 0x7254c
callq 0x2f1b2
leaq 0xe8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x3d764(%rip), %rsi     # 0x72606
leaq 0x3d765(%rip), %rdx     # 0x7260e
callq 0x2f1b2
leaq 0xc8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x4295b(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2e8ba
addq $0x10, %rsp
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x34f15
callq 0x27560
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x34f27
callq 0x27560
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x34f39
callq 0x27560
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d62d(%rip), %rsi     # 0x72578
leaq 0x3d62a(%rip), %rdx     # 0x7257c
callq 0x2f1b2
leaq 0xe8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x3d5bb(%rip), %rsi     # 0x72524
leaq 0x3d5c0(%rip), %rdx     # 0x72530
callq 0x2f1b2
leaq 0xc8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x42894(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
movq 0x8(%rbx), %r15
callq 0x646ea
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 0x2ebcc
addq $0x10, %rsp
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x34fe1
callq 0x27560
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x34ff3
callq 0x27560
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x35005
callq 0x27560
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d5c4(%rip), %rsi     # 0x725db
leaq 0x3d5c4(%rip), %rdx     # 0x725e2
callq 0x2f1b2
leaq 0xe8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x3d5ae(%rip), %rsi     # 0x725e3
leaq 0x3d5ad(%rip), %rdx     # 0x725e9
callq 0x2f1b2
leaq 0xc8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x427c8(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2e8ba
addq $0x10, %rsp
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x350a8
callq 0x27560
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x350ba
callq 0x27560
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x350cc
callq 0x27560
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3e011(%rip), %rsi     # 0x730ef
leaq 0x3e011(%rip), %rdx     # 0x730f6
callq 0x2f1b2
leaq 0xe8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x3d50a(%rip), %rsi     # 0x72606
leaq 0x3d50b(%rip), %rdx     # 0x7260e
callq 0x2f1b2
leaq 0xc8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x42701(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2e8ba
addq $0x10, %rsp
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3516f
callq 0x27560
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x35181
callq 0x27560
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x35193
callq 0x27560
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3df52(%rip), %rsi     # 0x730f7
leaq 0x3df5c(%rip), %rdx     # 0x73108
callq 0x2f1b2
movq 0x8(%rbx), %rdx
addq $0x5, %rdx
leaq 0x88(%rsp), %rdi
leaq 0x308(%rsp), %rsi
movq %r14, %rcx
callq 0x63808
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x351e3
callq 0x27560
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3df14(%rip), %rsi     # 0x73109
leaq 0x3df1c(%rip), %rdx     # 0x73118
callq 0x2f1b2
leaq 0x88(%rsp), %rdi
callq 0x63a0c
movq %rax, %r14
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x35223
callq 0x27560
leaq 0x88(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3dee4(%rip), %rsi     # 0x73119
leaq 0x3df2f(%rip), %rdx     # 0x7316b
callq 0x2f1b2
leaq 0xe8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x3df19(%rip), %rsi     # 0x7316c
leaq 0x3df42(%rip), %rdx     # 0x7319c
callq 0x2f1b2
leaq 0xc8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x3df2c(%rip), %rsi     # 0x7319d
leaq 0x3df50(%rip), %rdx     # 0x731c8
callq 0x2f1b2
leaq 0x2f8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3df39(%rip), %rsi     # 0x731c9
leaq 0x3df62(%rip), %rdx     # 0x731f9
leaq 0x2e8(%rsp), %rdi
callq 0x2f1b2
leaq 0x2d8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3df43(%rip), %rsi     # 0x731fa
leaq 0x3df65(%rip), %rdx     # 0x73223
leaq 0x2c8(%rsp), %rdi
callq 0x2f1b2
leaq 0x2b8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3df46(%rip), %rsi     # 0x73224
leaq 0x3df69(%rip), %rdx     # 0x7324e
leaq 0x2a8(%rsp), %rdi
callq 0x2f1b2
leaq 0x298(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3df4a(%rip), %rsi     # 0x7324f
leaq 0x3df67(%rip), %rdx     # 0x73273
leaq 0x288(%rsp), %rdi
callq 0x2f1b2
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x3df4b(%rip), %rsi     # 0x73274
leaq 0x3df52(%rip), %rdx     # 0x73282
leaq 0x8(%rsp), %rdi
callq 0x2f1b2
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x4234a(%rip), %rsi     # 0x77695
leaq 0x42346(%rip), %rdx     # 0x77698
leaq 0x68(%rsp), %rdi
callq 0x2f1b2
leaq 0xb8(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x424ac(%rip), %rdx     # 0x7781b
leaq 0xa8(%rsp), %rdi
movq %rdx, %rsi
callq 0x2f1b2
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 0x2e8ba
addq $0x10, %rsp
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x353cc
callq 0x27560
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x353db
callq 0x27560
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x353ea
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3de8a(%rip), %rsi     # 0x73283
leaq 0x3de8e(%rip), %rdx     # 0x7328e
callq 0x2f1b2
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x42281(%rip), %rsi     # 0x77695
leaq 0x4227d(%rip), %rdx     # 0x77698
callq 0x2f1b2
leaq 0xa8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x423e9(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2e8ba
addq $0x10, %rsp
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x35487
callq 0x27560
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x35496
callq 0x27560
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x354a5
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3dddb(%rip), %rsi     # 0x7328f
leaq 0x3dddb(%rip), %rdx     # 0x73296
callq 0x2f1b2
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x421c6(%rip), %rsi     # 0x77695
leaq 0x421c2(%rip), %rdx     # 0x77698
callq 0x2f1b2
leaq 0xa8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x4232e(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2e8ba
addq $0x10, %rsp
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x35542
callq 0x27560
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x35551
callq 0x27560
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x35560
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3dd28(%rip), %rsi     # 0x73297
leaq 0x3dd2c(%rip), %rdx     # 0x732a2
callq 0x2f1b2
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3dd19(%rip), %rsi     # 0x732a3
leaq 0x3dd19(%rip), %rdx     # 0x732aa
callq 0x2f1b2
leaq 0xa8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x42273(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2e8ba
addq $0x10, %rsp
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x355fd
callq 0x27560
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x3560c
callq 0x27560
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x3561b
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3dc81(%rip), %rsi     # 0x732ab
leaq 0x3dc7f(%rip), %rdx     # 0x732b0
callq 0x2f1b2
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x41d1e(%rip), %rsi     # 0x77363
leaq 0x41d1d(%rip), %rdx     # 0x77369
callq 0x2f1b2
leaq 0xa8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x421b8(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2e8ba
addq $0x10, %rsp
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x356b8
callq 0x27560
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x356c7
callq 0x27560
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x356d6
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3dbcc(%rip), %rsi     # 0x732b1
leaq 0x3dbd0(%rip), %rdx     # 0x732bc
callq 0x2f1b2
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x41c63(%rip), %rsi     # 0x77363
leaq 0x41c62(%rip), %rdx     # 0x77369
callq 0x2f1b2
leaq 0xa8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x420fd(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2e8ba
addq $0x10, %rsp
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x35773
callq 0x27560
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x35782
callq 0x27560
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x35791
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3db1d(%rip), %rsi     # 0x732bd
leaq 0x3db1a(%rip), %rdx     # 0x732c1
callq 0x2f1b2
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3db07(%rip), %rsi     # 0x732c2
leaq 0x3db09(%rip), %rdx     # 0x732cb
callq 0x2f1b2
leaq 0xa8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x42042(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2e8ba
addq $0x10, %rsp
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x3582e
callq 0x27560
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x3583d
callq 0x27560
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x3584c
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3da71(%rip), %rsi     # 0x732cc
leaq 0x3da80(%rip), %rdx     # 0x732e2
callq 0x2f1b2
leaq 0x8(%rsp), %rdi
callq 0x63a0c
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x35883
callq 0x27560
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3da51(%rip), %rsi     # 0x732e3
leaq 0x3da54(%rip), %rdx     # 0x732ed
callq 0x2f1b2
leaq 0x68(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3da41(%rip), %rsi     # 0x732ee
leaq 0x3da6c(%rip), %rdx     # 0x73320
callq 0x2f1b2
leaq 0xa8(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x3da56(%rip), %rsi     # 0x73321
leaq 0x3da73(%rip), %rdx     # 0x73345
callq 0x2f1b2
leaq 0x278(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3da5c(%rip), %rsi     # 0x73346
leaq 0x3da7f(%rip), %rdx     # 0x73370
leaq 0x268(%rsp), %rdi
callq 0x2f1b2
leaq 0x258(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3da60(%rip), %rsi     # 0x73371
leaq 0x3da7f(%rip), %rdx     # 0x73397
leaq 0x248(%rsp), %rdi
callq 0x2f1b2
leaq 0x238(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3da60(%rip), %rsi     # 0x73398
leaq 0x3da84(%rip), %rdx     # 0x733c3
leaq 0x228(%rsp), %rdi
callq 0x2f1b2
leaq 0x218(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3da65(%rip), %rsi     # 0x733c4
leaq 0x3da90(%rip), %rdx     # 0x733f6
leaq 0x208(%rsp), %rdi
callq 0x2f1b2
leaq 0x1f8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3da71(%rip), %rsi     # 0x733f7
leaq 0x3da9d(%rip), %rdx     # 0x7342a
leaq 0x1e8(%rsp), %rdi
callq 0x2f1b2
leaq 0x1d8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3da7e(%rip), %rsi     # 0x7342b
leaq 0x3da9e(%rip), %rdx     # 0x73452
leaq 0x1c8(%rsp), %rdi
callq 0x2f1b2
leaq 0x1b8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3da7f(%rip), %rsi     # 0x73453
leaq 0x3daa7(%rip), %rdx     # 0x73482
leaq 0x1a8(%rsp), %rdi
callq 0x2f1b2
leaq 0x198(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3da88(%rip), %rsi     # 0x73483
leaq 0x3daa8(%rip), %rdx     # 0x734aa
leaq 0x188(%rsp), %rdi
callq 0x2f1b2
leaq 0x178(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3da89(%rip), %rsi     # 0x734ab
leaq 0x3daad(%rip), %rdx     # 0x734d6
leaq 0x168(%rsp), %rdi
callq 0x2f1b2
leaq 0x158(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x3da8e(%rip), %rsi     # 0x734d7
leaq 0x3da9b(%rip), %rdx     # 0x734eb
leaq 0x148(%rsp), %rdi
callq 0x2f1b2
leaq 0x58(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x3da7e(%rip), %rsi     # 0x734ec
leaq 0x3da83(%rip), %rdx     # 0x734f8
leaq 0x48(%rsp), %rdi
callq 0x2f1b2
leaq 0x38(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x41d8c(%rip), %rdx     # 0x7781b
leaq 0x28(%rsp), %rdi
movq %rdx, %rsi
callq 0x2f1b2
movq 0x8(%rbx), %r9
leaq 0x188(%r9), %r8
addq $0x198, %r9             # imm = 0x198
leaq 0x5af9b(%rip), %r15     # 0x90a50
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x68(%rsp), %rdx
leaq 0x28(%rsp), %rcx
pushq %r15
pushq %r14
callq 0x2ebcc
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35ae5
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35af4
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d9f6(%rip), %rsi     # 0x734f9
leaq 0x3d9fa(%rip), %rdx     # 0x73504
callq 0x2f1b2
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x41cfd(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2ebcc
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35b6b
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35b7a
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d97c(%rip), %rsi     # 0x73505
leaq 0x3d981(%rip), %rdx     # 0x73511
callq 0x2f1b2
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x41c77(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2ebcc
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35bf1
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35c00
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d903(%rip), %rsi     # 0x73512
leaq 0x3d905(%rip), %rdx     # 0x7351b
callq 0x2f1b2
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x41bf1(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2ebcc
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35c77
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35c86
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d887(%rip), %rsi     # 0x7351c
leaq 0x3d88d(%rip), %rdx     # 0x73529
callq 0x2f1b2
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x41b6b(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2ebcc
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35cfd
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35d0c
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d80f(%rip), %rsi     # 0x7352a
leaq 0x3d81c(%rip), %rdx     # 0x7353e
callq 0x2f1b2
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x41ae5(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2ebcc
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35d83
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35d92
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d79e(%rip), %rsi     # 0x7353f
leaq 0x3d7a0(%rip), %rdx     # 0x73548
callq 0x2f1b2
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x41a5f(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2ebcc
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35e09
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35e18
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d722(%rip), %rsi     # 0x73549
leaq 0x3d72e(%rip), %rdx     # 0x7355c
callq 0x2f1b2
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x419d9(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2ebcc
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35e8f
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35e9e
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d6b0(%rip), %rsi     # 0x7355d
leaq 0x3d6b6(%rip), %rdx     # 0x7356a
callq 0x2f1b2
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x41953(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2ebcc
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35f15
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35f24
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d638(%rip), %rsi     # 0x7356b
leaq 0x3d641(%rip), %rdx     # 0x7357b
callq 0x2f1b2
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x418cd(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2ebcc
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x35f9b
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x35faa
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d5c3(%rip), %rsi     # 0x7357c
leaq 0x3d5c9(%rip), %rdx     # 0x73589
callq 0x2f1b2
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x41847(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2ebcc
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36021
callq 0x27560
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x36030
callq 0x27560
leaq 0x48(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x3d54b(%rip), %rsi     # 0x7358a
leaq 0x3d550(%rip), %rdx     # 0x73596
callq 0x2f1b2
leaq 0x28(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x417c1(%rip), %rdx     # 0x7781b
movq %rdx, %rsi
callq 0x2f1b2
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 0x2ebcc
addq $0x10, %rsp
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x360a7
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 0x360de
callq 0x27560
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x360f8
callq 0x27560
movq 0x168(%rsp), %rdi
leaq 0x178(%rsp), %rax
cmpq %rax, %rdi
je 0x36112
callq 0x27560
movq 0x188(%rsp), %rdi
leaq 0x198(%rsp), %rax
cmpq %rax, %rdi
je 0x3612c
callq 0x27560
movq 0x1a8(%rsp), %rdi
leaq 0x1b8(%rsp), %rax
cmpq %rax, %rdi
je 0x36146
callq 0x27560
movq 0x1c8(%rsp), %rdi
leaq 0x1d8(%rsp), %rax
cmpq %rax, %rdi
je 0x36160
callq 0x27560
movq 0x1e8(%rsp), %rdi
leaq 0x1f8(%rsp), %rax
cmpq %rax, %rdi
je 0x3617a
callq 0x27560
movq 0x208(%rsp), %rdi
leaq 0x218(%rsp), %rax
cmpq %rax, %rdi
je 0x36194
callq 0x27560
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x361ae
callq 0x27560
movq 0x248(%rsp), %rdi
leaq 0x258(%rsp), %rax
cmpq %rax, %rdi
je 0x361c8
callq 0x27560
movq 0x268(%rsp), %rdi
leaq 0x278(%rsp), %rax
cmpq %rax, %rdi
je 0x361e2
callq 0x27560
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x361f4
callq 0x27560
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x36208
callq 0x27560
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3621c
callq 0x27560
movq 0x288(%rsp), %rdi
leaq 0x298(%rsp), %rax
cmpq %rax, %rdi
je 0x36236
callq 0x27560
movq 0x2a8(%rsp), %rdi
leaq 0x2b8(%rsp), %rax
cmpq %rax, %rdi
je 0x36250
callq 0x27560
movq 0x2c8(%rsp), %rdi
leaq 0x2d8(%rsp), %rax
cmpq %rax, %rdi
je 0x3626a
callq 0x27560
movq 0x2e8(%rsp), %rdi
leaq 0x2f8(%rsp), %rax
cmpq %rax, %rdi
je 0x36284
callq 0x27560
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x3629e
callq 0x27560
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x362b8
callq 0x27560
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x362d2
callq 0x27560
movq 0x308(%rsp), %rdi
leaq 0x318(%rsp), %rax
cmpq %rax, %rdi
je 0x362ec
callq 0x27560
movq 0x328(%rsp), %rdi
leaq 0x338(%rsp), %rax
cmpq %rax, %rdi
je 0x36306
callq 0x27560
movq 0x348(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36318
callq 0x27560
movq 0x368(%rsp), %rdi
cmpq %r12, %rdi
je 0x3632a
callq 0x27560
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x3633c
callq 0x27560
movq 0x108(%rsp), %rdi
cmpq %r14, %rdi
je 0x3634e
callq 0x27560
movq 0x388(%rsp), %rdi
cmpq %rbx, %rdi
je 0x36360
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 0x36389
callq 0x27560
jmp 0x36389
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x36584
jmp 0x3657a
jmp 0x36581
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x363b8
callq 0x27560
jmp 0x363b8
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x36584
jmp 0x3657a
jmp 0x36581
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x363e7
callq 0x27560
jmp 0x363e7
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x36584
jmp 0x3657a
jmp 0x36581
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36416
callq 0x27560
jmp 0x36416
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x36584
jmp 0x3657a
jmp 0x36581
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36445
callq 0x27560
jmp 0x36445
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x36584
jmp 0x3657a
jmp 0x36581
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36474
callq 0x27560
jmp 0x36474
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x36584
jmp 0x3657a
jmp 0x36581
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x364a3
callq 0x27560
jmp 0x364a3
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x36584
jmp 0x3657a
jmp 0x36581
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x364d2
callq 0x27560
jmp 0x364d2
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x36584
jmp 0x3657a
jmp 0x36581
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36501
callq 0x27560
jmp 0x36501
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x36584
jmp 0x3657a
jmp 0x36581
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36526
callq 0x27560
jmp 0x36526
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x36584
jmp 0x3657a
jmp 0x36581
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3654b
callq 0x27560
jmp 0x3654b
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x36584
jmp 0x3657a
jmp 0x36581
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36570
callq 0x27560
jmp 0x36570
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x36584
callq 0x27560
jmp 0x36584
movq %rax, %rbx
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x3659e
callq 0x27560
movq 0x168(%rsp), %rdi
leaq 0x178(%rsp), %rax
cmpq %rax, %rdi
je 0x365b8
callq 0x27560
movq 0x188(%rsp), %rdi
leaq 0x198(%rsp), %rax
cmpq %rax, %rdi
je 0x365d2
callq 0x27560
movq 0x1a8(%rsp), %rdi
leaq 0x1b8(%rsp), %rax
cmpq %rax, %rdi
je 0x365ec
callq 0x27560
movq 0x1c8(%rsp), %rdi
leaq 0x1d8(%rsp), %rax
cmpq %rax, %rdi
je 0x36606
callq 0x27560
movq 0x1e8(%rsp), %rdi
leaq 0x1f8(%rsp), %rax
cmpq %rax, %rdi
je 0x36620
callq 0x27560
movq 0x208(%rsp), %rdi
leaq 0x218(%rsp), %rax
cmpq %rax, %rdi
je 0x3663a
callq 0x27560
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x36654
callq 0x27560
movq 0x248(%rsp), %rdi
leaq 0x258(%rsp), %rax
cmpq %rax, %rdi
je 0x3666e
callq 0x27560
movq 0x268(%rsp), %rdi
leaq 0x278(%rsp), %rax
cmpq %rax, %rdi
je 0x36688
callq 0x27560
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x3669a
callq 0x27560
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x366ae
callq 0x27560
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3691f
callq 0x27560
jmp 0x3691f
movq %rax, %rbx
jmp 0x3659e
movq %rax, %rbx
jmp 0x365b8
movq %rax, %rbx
jmp 0x365d2
movq %rax, %rbx
jmp 0x365ec
movq %rax, %rbx
jmp 0x36606
movq %rax, %rbx
jmp 0x36620
movq %rax, %rbx
jmp 0x3663a
movq %rax, %rbx
jmp 0x36654
movq %rax, %rbx
jmp 0x3666e
movq %rax, %rbx
jmp 0x36688
movq %rax, %rbx
jmp 0x3669a
movq %rax, %rbx
jmp 0x366ae
jmp 0x3691c
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x3691f
jmp 0x366c1
jmp 0x3691c
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x3675f
callq 0x27560
jmp 0x3675f
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x36773
callq 0x27560
jmp 0x36773
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x3691f
jmp 0x366c1
jmp 0x3691c
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x367a5
callq 0x27560
jmp 0x367a5
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x367b9
callq 0x27560
jmp 0x367b9
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x3691f
jmp 0x366c1
jmp 0x3691c
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x367eb
callq 0x27560
jmp 0x367eb
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x367ff
callq 0x27560
jmp 0x367ff
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x3691f
jmp 0x366c1
jmp 0x3691c
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x36831
callq 0x27560
jmp 0x36831
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x36845
callq 0x27560
jmp 0x36845
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x3691f
jmp 0x366c1
jmp 0x3691c
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x36877
callq 0x27560
jmp 0x36877
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x3688b
callq 0x27560
jmp 0x3688b
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x3691f
jmp 0x366c1
jmp 0x3691c
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x368ba
callq 0x27560
jmp 0x368ba
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x368ce
callq 0x27560
jmp 0x368ce
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x3691f
jmp 0x366c1
jmp 0x3691c
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x368f9
callq 0x27560
jmp 0x368f9
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x3690d
callq 0x27560
jmp 0x3690d
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x3691f
jmp 0x366c1
movq %rax, %rbx
movq 0x288(%rsp), %rdi
leaq 0x298(%rsp), %rax
cmpq %rax, %rdi
je 0x36939
callq 0x27560
movq 0x2a8(%rsp), %rdi
leaq 0x2b8(%rsp), %rax
cmpq %rax, %rdi
je 0x36953
callq 0x27560
movq 0x2c8(%rsp), %rdi
leaq 0x2d8(%rsp), %rax
cmpq %rax, %rdi
je 0x3696d
callq 0x27560
movq 0x2e8(%rsp), %rdi
leaq 0x2f8(%rsp), %rax
cmpq %rax, %rdi
je 0x36987
callq 0x27560
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x369a1
callq 0x27560
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x369bb
callq 0x27560
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x369d5
callq 0x27560
movq 0x308(%rsp), %rdi
leaq 0x318(%rsp), %rax
cmpq %rax, %rdi
je 0x369ef
callq 0x27560
movq 0x328(%rsp), %rdi
leaq 0x338(%rsp), %rax
cmpq %rax, %rdi
je 0x36a09
callq 0x27560
movq 0x348(%rsp), %rdi
leaq 0x358(%rsp), %rax
cmpq %rax, %rdi
je 0x36a23
callq 0x27560
movq 0x368(%rsp), %rdi
leaq 0x378(%rsp), %rax
cmpq %rax, %rdi
je 0x36a3d
callq 0x27560
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x36a57
callq 0x27560
movq 0x108(%rsp), %rdi
leaq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x36a71
callq 0x27560
movq 0x388(%rsp), %rdi
leaq 0x398(%rsp), %rax
cmpq %rax, %rdi
je 0x36a8b
callq 0x27560
movq %rbx, %rdi
callq 0x27b20
movq %rax, %rbx
jmp 0x36939
movq %rax, %rbx
jmp 0x36953
movq %rax, %rbx
jmp 0x3696d
movq %rax, %rbx
jmp 0x36987
movq %rax, %rbx
jmp 0x369a1
movq %rax, %rbx
jmp 0x369bb
jmp 0x36c04
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x369d5
jmp 0x369d0
jmp 0x36c04
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x369d5
jmp 0x369d0
jmp 0x36c04
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36b1e
callq 0x27560
jmp 0x36b1e
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x36b35
callq 0x27560
jmp 0x36b35
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x369d5
jmp 0x369d0
jmp 0x36c04
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36b6a
callq 0x27560
jmp 0x36b6a
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x36b81
callq 0x27560
jmp 0x36b81
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x369d5
jmp 0x369d0
jmp 0x36c04
movq %rax, %rbx
jmp 0x36cb1
movq %rax, %rbx
jmp 0x36cc3
jmp 0x36c04
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36bc5
callq 0x27560
jmp 0x36bc5
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x36bdc
callq 0x27560
jmp 0x36bdc
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x369d5
jmp 0x369d0
jmp 0x36c04
movq %rax, %rbx
jmp 0x36cee
movq %rax, %rbx
jmp 0x36d00
movq %rax, %rbx
jmp 0x369d5
movq %rax, %rbx
jmp 0x369ef
movq %rax, %rbx
jmp 0x36a09
movq %rax, %rbx
jmp 0x36a23
movq %rax, %rbx
jmp 0x36a3d
movq %rax, %rbx
jmp 0x36a57
jmp 0x36c81
movq %rax, %rbx
movq 0x108(%rsp), %rdi
cmpq %r15, %rdi
je 0x36a71
jmp 0x36a6c
jmp 0x36c81
movq %rax, %rbx
movq 0x128(%rsp), %rdi
cmpq %r12, %rdi
je 0x36c6b
callq 0x27560
jmp 0x36c6b
movq %rax, %rbx
movq 0x108(%rsp), %rdi
cmpq %r15, %rdi
je 0x36a71
jmp 0x36a6c
movq %rax, %rbx
jmp 0x36a71
movq %rax, %rbx
jmp 0x36a8b
movq %rax, %rbx
movq %r14, %rdi
jmp 0x36a86
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36cb1
callq 0x27560
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x36cc3
callq 0x27560
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x369d5
jmp 0x369d0
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x36cee
callq 0x27560
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x36d00
callq 0x27560
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x369d5
jmp 0x369d0