// File: zeeev[P]DASVC/bamtools/src/toolkit/bamtools_split.cpp
// Function: BamTools::SplitTool::SplitTool()
SplitTool::SplitTool(void)
    : AbstractTool()
    , m_settings(new SplitSettings)
    , m_impl(0)
{
    // set program details
    const string name = "bamtools split";
    const string description = "splits a BAM file on user-specified property, creating a new BAM output file for each value found";
    const string args = "[-in <filename>] [-stub <filename stub>] < -mapped | -paired | -reference [-refPrefix <prefix>] | -tag <TAG> > ";
    Options::SetProgramInfo(name, description, args);
    
    // set up options 
    OptionGroup* IO_Opts = Options::CreateOptionGroup("Input & Output");
    Options::AddValueOption("-in",   "BAM filename",  "the input BAM file",  "",
                            m_settings->HasInputFilename,  m_settings->InputFilename,  IO_Opts, Options::StandardIn());
    Options::AddValueOption("-refPrefix", "string", "custom prefix for splitting by references. Currently files end with REF_<refName>.bam. This option allows you to replace \"REF_\" with a prefix of your choosing.", "",
                            m_settings->HasCustomRefPrefix, m_settings->CustomRefPrefix, IO_Opts);
    Options::AddValueOption("-tagPrefix", "string", "custom prefix for splitting by tags. Current files end with TAG_<tagname>_<tagvalue>.bam. This option allows you to replace \"TAG_\" with a prefix of your choosing.", "",
                            m_settings->HasCustomTagPrefix, m_settings->CustomTagPrefix, IO_Opts);
    Options::AddValueOption("-stub", "filename stub", "prefix stub for output BAM files (default behavior is to use input filename, without .bam extension, as stub). If input is stdin and no stub provided, a timestamp is generated as the stub.", "",
                            m_settings->HasCustomOutputStub, m_settings->CustomOutputStub, IO_Opts);
    Options::AddValueOption("-tagListDelim", "string", "delimiter used to separate values in the filenames generated from splitting on list-type tags [--]", "",
                            m_settings->HasListTagDelimiter, m_settings->ListTagDelimiter, IO_Opts);
    
    OptionGroup* SplitOpts = Options::CreateOptionGroup("Split Options");
    Options::AddOption("-mapped",    "split mapped/unmapped alignments",       m_settings->IsSplittingMapped,    SplitOpts);
    Options::AddOption("-paired",    "split single-end/paired-end alignments", m_settings->IsSplittingPaired,    SplitOpts);
    Options::AddOption("-reference", "split alignments by reference",          m_settings->IsSplittingReference, SplitOpts);
    Options::AddValueOption("-tag", "tag name", "splits alignments based on all values of TAG encountered (i.e. -tag RG creates a BAM file for each read group in original BAM file)", "", 
                            m_settings->IsSplittingTag, m_settings->TagToSplit, SplitOpts);
}

// Assembly:
subq $0x718, %rsp            # imm = 0x718
movq %rdi, 0x710(%rsp)
movq 0x710(%rsp), %rdi
movq %rdi, 0x160(%rsp)
callq 0x91a20
movq 0x160(%rsp), %rax
leaq 0x7e34d(%rip), %rcx     # 0x164ba0
movq %rcx, (%rax)
addq $0x8, %rax
movq %rax, 0x168(%rsp)
movl $0xd0, %edi
callq 0x86720
movq %rax, 0x170(%rsp)
jmp 0xe6876
movq 0x170(%rsp), %rdi
callq 0xf3ee0
jmp 0xe6885
movq 0x160(%rsp), %rax
movq 0x168(%rsp), %rcx
movq 0x170(%rsp), %rdx
movq %rdx, (%rcx)
movq $0x0, 0x10(%rax)
leaq 0x6df(%rsp), %rdi
movq %rdi, 0x158(%rsp)
callq 0x86da0
movq 0x158(%rsp), %rdx
leaq 0x4c72e(%rip), %rsi     # 0x132ffa
leaq 0x6e0(%rsp), %rdi
callq 0x86a00
jmp 0xe68db
leaq 0x6df(%rsp), %rdi
callq 0x867b0
leaq 0x6b7(%rsp), %rdi
movq %rdi, 0x150(%rsp)
callq 0x86da0
movq 0x150(%rsp), %rdx
leaq 0x4c6fd(%rip), %rsi     # 0x133009
leaq 0x6b8(%rsp), %rdi
callq 0x86a00
jmp 0xe691b
leaq 0x6b7(%rsp), %rdi
callq 0x867b0
leaq 0x68f(%rsp), %rdi
movq %rdi, 0x148(%rsp)
callq 0x86da0
movq 0x148(%rsp), %rdx
leaq 0x4c71f(%rip), %rsi     # 0x13306b
leaq 0x690(%rsp), %rdi
callq 0x86a00
jmp 0xe695b
leaq 0x68f(%rsp), %rdi
callq 0x867b0
leaq 0x6e0(%rsp), %rdi
leaq 0x6b8(%rsp), %rsi
leaq 0x690(%rsp), %rdx
callq 0x10f230
jmp 0xe6987
leaq 0x65f(%rsp), %rdi
movq %rdi, 0x140(%rsp)
callq 0x86da0
movq 0x140(%rsp), %rdx
leaq 0x47cc0(%rip), %rsi     # 0x12e66b
leaq 0x660(%rsp), %rdi
callq 0x86a00
jmp 0xe69ba
leaq 0x660(%rsp), %rdi
callq 0x10d3e0
movq %rax, 0x138(%rsp)
jmp 0xe69d1
leaq 0x660(%rsp), %rdi
callq 0x86f68
jmp 0xe69e0
leaq 0x65f(%rsp), %rdi
callq 0x867b0
movq 0x138(%rsp), %rax
movq %rax, 0x680(%rsp)
leaq 0x637(%rsp), %rdi
movq %rdi, 0x130(%rsp)
callq 0x86da0
movq 0x130(%rsp), %rdx
leaq 0x47c59(%rip), %rsi     # 0x12e67a
leaq 0x638(%rsp), %rdi
callq 0x86a00
jmp 0xe6a30
leaq 0x60f(%rsp), %rdi
movq %rdi, 0x128(%rsp)
callq 0x86da0
movq 0x128(%rsp), %rdx
leaq 0x47c2a(%rip), %rsi     # 0x12e67e
leaq 0x610(%rsp), %rdi
callq 0x86a00
jmp 0xe6a63
leaq 0x5e7(%rsp), %rdi
movq %rdi, 0x120(%rsp)
callq 0x86da0
movq 0x120(%rsp), %rdx
leaq 0x4cead(%rip), %rsi     # 0x133934
leaq 0x5e8(%rsp), %rdi
callq 0x86a00
jmp 0xe6a96
leaq 0x5bf(%rsp), %rdi
movq %rdi, 0x118(%rsp)
callq 0x86da0
movq 0x118(%rsp), %rdx
leaq 0x4e1b9(%rip), %rsi     # 0x134c73
leaq 0x5c0(%rsp), %rdi
callq 0x86a00
jmp 0xe6ac9
movq 0x160(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0xf8(%rsp)
addq $0x70, %rax
movq %rax, 0x100(%rsp)
movq 0x680(%rsp), %rax
movq %rax, 0x108(%rsp)
callq 0x10f280
movq %rax, 0x110(%rsp)
jmp 0xe6b08
movq 0x100(%rsp), %r9
movq 0xf8(%rsp), %r8
movq 0x108(%rsp), %rcx
movq 0x110(%rsp), %rdx
movq %rsp, %rax
movq %rdx, 0x8(%rax)
movq %rcx, (%rax)
leaq 0x638(%rsp), %rdi
leaq 0x610(%rsp), %rsi
leaq 0x5e8(%rsp), %rdx
leaq 0x5c0(%rsp), %rcx
callq 0x92150
jmp 0xe6b59
leaq 0x5c0(%rsp), %rdi
callq 0x86f68
jmp 0xe6b68
leaq 0x5bf(%rsp), %rdi
callq 0x867b0
leaq 0x5e8(%rsp), %rdi
callq 0x86f68
jmp 0xe6b84
leaq 0x5e7(%rsp), %rdi
callq 0x867b0
leaq 0x610(%rsp), %rdi
callq 0x86f68
jmp 0xe6ba0
leaq 0x60f(%rsp), %rdi
callq 0x867b0
leaq 0x638(%rsp), %rdi
callq 0x86f68
jmp 0xe6bbc
leaq 0x637(%rsp), %rdi
callq 0x867b0
leaq 0x597(%rsp), %rdi
movq %rdi, 0xf0(%rsp)
callq 0x86da0
movq 0xf0(%rsp), %rdx
leaq 0x4c4ee(%rip), %rsi     # 0x1330db
leaq 0x598(%rsp), %rdi
callq 0x86a00
jmp 0xe6bfc
leaq 0x56f(%rsp), %rdi
movq %rdi, 0xe8(%rsp)
callq 0x86da0
movq 0xe8(%rsp), %rdx
leaq 0x4dbaf(%rip), %rsi     # 0x1347cf
leaq 0x570(%rsp), %rdi
callq 0x86a00
jmp 0xe6c2f
leaq 0x547(%rsp), %rdi
movq %rdi, 0xe0(%rsp)
callq 0x86da0
movq 0xe0(%rsp), %rdx
leaq 0x4c493(%rip), %rsi     # 0x1330e6
leaq 0x548(%rsp), %rdi
callq 0x86a00
jmp 0xe6c62
leaq 0x51f(%rsp), %rdi
movq %rdi, 0xd8(%rsp)
callq 0x86da0
movq 0xd8(%rsp), %rdx
leaq 0x4dfed(%rip), %rsi     # 0x134c73
leaq 0x520(%rsp), %rdi
callq 0x86a00
jmp 0xe6c95
movq 0x160(%rsp), %rax
movq 0x8(%rax), %r9
movq %r9, %r8
addq $0x2, %r8
addq $0x30, %r9
movq 0x680(%rsp), %rcx
movq %rsp, %rax
movq %rcx, (%rax)
leaq 0x598(%rsp), %rdi
leaq 0x570(%rsp), %rsi
leaq 0x548(%rsp), %rdx
leaq 0x520(%rsp), %rcx
callq 0x91f00
jmp 0xe6ce1
leaq 0x520(%rsp), %rdi
callq 0x86f68
jmp 0xe6cf0
leaq 0x51f(%rsp), %rdi
callq 0x867b0
leaq 0x548(%rsp), %rdi
callq 0x86f68
jmp 0xe6d0c
leaq 0x547(%rsp), %rdi
callq 0x867b0
leaq 0x570(%rsp), %rdi
callq 0x86f68
jmp 0xe6d28
leaq 0x56f(%rsp), %rdi
callq 0x867b0
leaq 0x598(%rsp), %rdi
callq 0x86f68
jmp 0xe6d44
leaq 0x597(%rsp), %rdi
callq 0x867b0
leaq 0x4f7(%rsp), %rdi
movq %rdi, 0xd0(%rsp)
callq 0x86da0
movq 0xd0(%rsp), %rdx
leaq 0x4c411(%rip), %rsi     # 0x133186
leaq 0x4f8(%rsp), %rdi
callq 0x86a00
jmp 0xe6d84
leaq 0x4cf(%rsp), %rdi
movq %rdi, 0xc8(%rsp)
callq 0x86da0
movq 0xc8(%rsp), %rdx
leaq 0x4da27(%rip), %rsi     # 0x1347cf
leaq 0x4d0(%rsp), %rdi
callq 0x86a00
jmp 0xe6db7
leaq 0x4a7(%rsp), %rdi
movq %rdi, 0xc0(%rsp)
callq 0x86da0
movq 0xc0(%rsp), %rdx
leaq 0x4c3b6(%rip), %rsi     # 0x133191
leaq 0x4a8(%rsp), %rdi
callq 0x86a00
jmp 0xe6dea
leaq 0x47f(%rsp), %rdi
movq %rdi, 0xb8(%rsp)
callq 0x86da0
movq 0xb8(%rsp), %rdx
leaq 0x4de65(%rip), %rsi     # 0x134c73
leaq 0x480(%rsp), %rdi
callq 0x86a00
jmp 0xe6e1d
movq 0x160(%rsp), %rax
movq 0x8(%rax), %r9
movq %r9, %r8
addq $0x3, %r8
addq $0x50, %r9
movq 0x680(%rsp), %rcx
movq %rsp, %rax
movq %rcx, (%rax)
leaq 0x4f8(%rsp), %rdi
leaq 0x4d0(%rsp), %rsi
leaq 0x4a8(%rsp), %rdx
leaq 0x480(%rsp), %rcx
callq 0x91f00
jmp 0xe6e69
leaq 0x480(%rsp), %rdi
callq 0x86f68
jmp 0xe6e78
leaq 0x47f(%rsp), %rdi
callq 0x867b0
leaq 0x4a8(%rsp), %rdi
callq 0x86f68
jmp 0xe6e94
leaq 0x4a7(%rsp), %rdi
callq 0x867b0
leaq 0x4d0(%rsp), %rdi
callq 0x86f68
jmp 0xe6eb0
leaq 0x4cf(%rsp), %rdi
callq 0x867b0
leaq 0x4f8(%rsp), %rdi
callq 0x86f68
jmp 0xe6ecc
leaq 0x4f7(%rsp), %rdi
callq 0x867b0
leaq 0x457(%rsp), %rdi
movq %rdi, 0xb0(%rsp)
callq 0x86da0
movq 0xb0(%rsp), %rdx
leaq 0x4c337(%rip), %rsi     # 0x133234
leaq 0x458(%rsp), %rdi
callq 0x86a00
jmp 0xe6f0c
leaq 0x42f(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0x86da0
movq 0xa8(%rsp), %rdx
leaq 0x4c30a(%rip), %rsi     # 0x13323a
leaq 0x430(%rsp), %rdi
callq 0x86a00
jmp 0xe6f3f
leaq 0x407(%rsp), %rdi
movq %rdi, 0xa0(%rsp)
callq 0x86da0
movq 0xa0(%rsp), %rdx
leaq 0x4c2e5(%rip), %rsi     # 0x133248
leaq 0x408(%rsp), %rdi
callq 0x86a00
jmp 0xe6f72
leaq 0x3df(%rsp), %rdi
movq %rdi, 0x98(%rsp)
callq 0x86da0
movq 0x98(%rsp), %rdx
leaq 0x4dcdd(%rip), %rsi     # 0x134c73
leaq 0x3e0(%rsp), %rdi
callq 0x86a00
jmp 0xe6fa5
movq 0x160(%rsp), %rax
movq 0x8(%rax), %r9
movq %r9, %r8
incq %r8
addq $0x10, %r9
movq 0x680(%rsp), %rcx
movq %rsp, %rax
movq %rcx, (%rax)
leaq 0x458(%rsp), %rdi
leaq 0x430(%rsp), %rsi
leaq 0x408(%rsp), %rdx
leaq 0x3e0(%rsp), %rcx
callq 0x91f00
jmp 0xe6ff0
leaq 0x3e0(%rsp), %rdi
callq 0x86f68
jmp 0xe6fff
leaq 0x3df(%rsp), %rdi
callq 0x867b0
leaq 0x408(%rsp), %rdi
callq 0x86f68
jmp 0xe701b
leaq 0x407(%rsp), %rdi
callq 0x867b0
leaq 0x430(%rsp), %rdi
callq 0x86f68
jmp 0xe7037
leaq 0x42f(%rsp), %rdi
callq 0x867b0
leaq 0x458(%rsp), %rdi
callq 0x86f68
jmp 0xe7053
leaq 0x457(%rsp), %rdi
callq 0x867b0
leaq 0x3b7(%rsp), %rdi
movq %rdi, 0x90(%rsp)
callq 0x86da0
movq 0x90(%rsp), %rdx
leaq 0x4c281(%rip), %rsi     # 0x133305
leaq 0x3b8(%rsp), %rdi
callq 0x86a00
jmp 0xe7093
leaq 0x38f(%rsp), %rdi
movq %rdi, 0x88(%rsp)
callq 0x86da0
movq 0x88(%rsp), %rdx
leaq 0x4d718(%rip), %rsi     # 0x1347cf
leaq 0x390(%rsp), %rdi
callq 0x86a00
jmp 0xe70c6
leaq 0x367(%rsp), %rdi
movq %rdi, 0x80(%rsp)
callq 0x86da0
movq 0x80(%rsp), %rdx
leaq 0x4c229(%rip), %rsi     # 0x133313
leaq 0x368(%rsp), %rdi
callq 0x86a00
jmp 0xe70f9
leaq 0x33f(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0x86da0
movq 0x78(%rsp), %rdx
leaq 0x4db5c(%rip), %rsi     # 0x134c73
leaq 0x340(%rsp), %rdi
callq 0x86a00
jmp 0xe7126
movq 0x160(%rsp), %rax
movq 0x8(%rax), %r9
movq %r9, %r8
addq $0x4, %r8
addq $0xb0, %r9
movq 0x680(%rsp), %rcx
movq %rsp, %rax
movq %rcx, (%rax)
leaq 0x3b8(%rsp), %rdi
leaq 0x390(%rsp), %rsi
leaq 0x368(%rsp), %rdx
leaq 0x340(%rsp), %rcx
callq 0x91f00
jmp 0xe7175
leaq 0x340(%rsp), %rdi
callq 0x86f68
jmp 0xe7184
leaq 0x33f(%rsp), %rdi
callq 0x867b0
leaq 0x368(%rsp), %rdi
callq 0x86f68
jmp 0xe71a0
leaq 0x367(%rsp), %rdi
callq 0x867b0
leaq 0x390(%rsp), %rdi
callq 0x86f68
jmp 0xe71bc
leaq 0x38f(%rsp), %rdi
callq 0x867b0
leaq 0x3b8(%rsp), %rdi
callq 0x86f68
jmp 0xe71d8
leaq 0x3b7(%rsp), %rdi
callq 0x867b0
leaq 0x30f(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0x86da0
movq 0x70(%rsp), %rdx
leaq 0x4c173(%rip), %rsi     # 0x133376
leaq 0x310(%rsp), %rdi
callq 0x86a00
jmp 0xe7212
leaq 0x310(%rsp), %rdi
callq 0x10d3e0
movq %rax, 0x68(%rsp)
jmp 0xe7226
leaq 0x310(%rsp), %rdi
callq 0x86f68
jmp 0xe7235
leaq 0x30f(%rsp), %rdi
callq 0x867b0
movq 0x68(%rsp), %rax
movq %rax, 0x330(%rsp)
leaq 0x2e7(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0x86da0
movq 0x60(%rsp), %rdx
leaq 0x4c117(%rip), %rsi     # 0x133384
leaq 0x2e8(%rsp), %rdi
callq 0x86a00
jmp 0xe727c
leaq 0x2bf(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0x86da0
movq 0x58(%rsp), %rdx
leaq 0x4c0f2(%rip), %rsi     # 0x13338c
leaq 0x2c0(%rsp), %rdi
callq 0x86a00
jmp 0xe72a9
movq 0x160(%rsp), %rax
movq 0x8(%rax), %rdx
addq $0x5, %rdx
movq 0x330(%rsp), %rcx
leaq 0x2e8(%rsp), %rdi
leaq 0x2c0(%rsp), %rsi
callq 0x10d2a0
jmp 0xe72d8
leaq 0x2c0(%rsp), %rdi
callq 0x86f68
jmp 0xe72e7
leaq 0x2bf(%rsp), %rdi
callq 0x867b0
leaq 0x2e8(%rsp), %rdi
callq 0x86f68
jmp 0xe7303
leaq 0x2e7(%rsp), %rdi
callq 0x867b0
leaq 0x297(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0x86da0
movq 0x50(%rsp), %rdx
leaq 0x4c07f(%rip), %rsi     # 0x1333ad
leaq 0x298(%rsp), %rdi
callq 0x86a00
jmp 0xe733d
leaq 0x26f(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x86da0
movq 0x48(%rsp), %rdx
leaq 0x4c05a(%rip), %rsi     # 0x1333b5
leaq 0x270(%rsp), %rdi
callq 0x86a00
jmp 0xe736a
movq 0x160(%rsp), %rax
movq 0x8(%rax), %rdx
addq $0x6, %rdx
movq 0x330(%rsp), %rcx
leaq 0x298(%rsp), %rdi
leaq 0x270(%rsp), %rsi
callq 0x10d2a0
jmp 0xe7399
leaq 0x270(%rsp), %rdi
callq 0x86f68
jmp 0xe73a8
leaq 0x26f(%rsp), %rdi
callq 0x867b0
leaq 0x298(%rsp), %rdi
callq 0x86f68
jmp 0xe73c4
leaq 0x297(%rsp), %rdi
callq 0x867b0
leaq 0x247(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x86da0
movq 0x40(%rsp), %rdx
leaq 0x4bfed(%rip), %rsi     # 0x1333dc
leaq 0x248(%rsp), %rdi
callq 0x86a00
jmp 0xe73fe
leaq 0x21f(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x86da0
movq 0x38(%rsp), %rdx
leaq 0x4bfcb(%rip), %rsi     # 0x1333e7
leaq 0x220(%rsp), %rdi
callq 0x86a00
jmp 0xe742b
movq 0x160(%rsp), %rax
movq 0x8(%rax), %rdx
addq $0x7, %rdx
movq 0x330(%rsp), %rcx
leaq 0x248(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0x10d2a0
jmp 0xe745a
leaq 0x220(%rsp), %rdi
callq 0x86f68
jmp 0xe7469
leaq 0x21f(%rsp), %rdi
callq 0x867b0
leaq 0x248(%rsp), %rdi
callq 0x86f68
jmp 0xe7485
leaq 0x247(%rsp), %rdi
callq 0x867b0
leaq 0x1f7(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x86da0
movq 0x30(%rsp), %rdx
leaq 0x485e2(%rip), %rsi     # 0x12fa92
leaq 0x1f8(%rsp), %rdi
callq 0x86a00
jmp 0xe74bf
leaq 0x1cf(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x86da0
movq 0x28(%rsp), %rdx
leaq 0x4bf28(%rip), %rsi     # 0x133405
leaq 0x1d0(%rsp), %rdi
callq 0x86a00
jmp 0xe74ec
leaq 0x1a7(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x86da0
movq 0x20(%rsp), %rdx
leaq 0x4bf04(%rip), %rsi     # 0x13340e
leaq 0x1a8(%rsp), %rdi
callq 0x86a00
jmp 0xe7519
leaq 0x17f(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x86da0
movq 0x18(%rsp), %rdx
leaq 0x4d73c(%rip), %rsi     # 0x134c73
leaq 0x180(%rsp), %rdi
callq 0x86a00
jmp 0xe7546
movq 0x160(%rsp), %rax
movq 0x8(%rax), %r9
movq %r9, %r8
addq $0x8, %r8
addq $0x90, %r9
movq 0x330(%rsp), %rcx
movq %rsp, %rax
movq %rcx, (%rax)
leaq 0x1f8(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
leaq 0x1a8(%rsp), %rdx
leaq 0x180(%rsp), %rcx
callq 0x91f00
jmp 0xe7595
leaq 0x180(%rsp), %rdi
callq 0x86f68
jmp 0xe75a4
leaq 0x17f(%rsp), %rdi
callq 0x867b0
leaq 0x1a8(%rsp), %rdi
callq 0x86f68
jmp 0xe75c0
leaq 0x1a7(%rsp), %rdi
callq 0x867b0
leaq 0x1d0(%rsp), %rdi
callq 0x86f68
jmp 0xe75dc
leaq 0x1cf(%rsp), %rdi
callq 0x867b0
leaq 0x1f8(%rsp), %rdi
callq 0x86f68
jmp 0xe75f8
leaq 0x1f7(%rsp), %rdi
callq 0x867b0
leaq 0x690(%rsp), %rdi
callq 0x86f68
jmp 0xe7614
leaq 0x6b8(%rsp), %rdi
callq 0x86f68
jmp 0xe7623
leaq 0x6e0(%rsp), %rdi
callq 0x86f68
jmp 0xe7632
addq $0x718, %rsp            # imm = 0x718
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7f17
movq 0x170(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
callq 0x866a0
jmp 0xe7f17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
leaq 0x6df(%rsp), %rdi
callq 0x867b0
jmp 0xe7f17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
leaq 0x6b7(%rsp), %rdi
callq 0x867b0
jmp 0xe7f06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
leaq 0x68f(%rsp), %rdi
callq 0x867b0
jmp 0xe7ef5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7ece
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe773f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
leaq 0x660(%rsp), %rdi
callq 0x86f68
jmp 0xe773d
jmp 0xe773f
leaq 0x65f(%rsp), %rdi
callq 0x867b0
jmp 0xe7ece
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe782e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7810
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe77f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe77d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
leaq 0x5c0(%rsp), %rdi
callq 0x86f68
jmp 0xe77d2
jmp 0xe77d4
leaq 0x5bf(%rsp), %rdi
callq 0x867b0
leaq 0x5e8(%rsp), %rdi
callq 0x86f68
jmp 0xe77f0
jmp 0xe77f2
leaq 0x5e7(%rsp), %rdi
callq 0x867b0
leaq 0x610(%rsp), %rdi
callq 0x86f68
jmp 0xe780e
jmp 0xe7810
leaq 0x60f(%rsp), %rdi
callq 0x867b0
leaq 0x638(%rsp), %rdi
callq 0x86f68
jmp 0xe782c
jmp 0xe782e
leaq 0x637(%rsp), %rdi
callq 0x867b0
jmp 0xe7ece
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe791d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe78ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe78e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe78c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
leaq 0x520(%rsp), %rdi
callq 0x86f68
jmp 0xe78c1
jmp 0xe78c3
leaq 0x51f(%rsp), %rdi
callq 0x867b0
leaq 0x548(%rsp), %rdi
callq 0x86f68
jmp 0xe78df
jmp 0xe78e1
leaq 0x547(%rsp), %rdi
callq 0x867b0
leaq 0x570(%rsp), %rdi
callq 0x86f68
jmp 0xe78fd
jmp 0xe78ff
leaq 0x56f(%rsp), %rdi
callq 0x867b0
leaq 0x598(%rsp), %rdi
callq 0x86f68
jmp 0xe791b
jmp 0xe791d
leaq 0x597(%rsp), %rdi
callq 0x867b0
jmp 0xe7ece
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7a0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe79ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe79d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe79b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
leaq 0x480(%rsp), %rdi
callq 0x86f68
jmp 0xe79b0
jmp 0xe79b2
leaq 0x47f(%rsp), %rdi
callq 0x867b0
leaq 0x4a8(%rsp), %rdi
callq 0x86f68
jmp 0xe79ce
jmp 0xe79d0
leaq 0x4a7(%rsp), %rdi
callq 0x867b0
leaq 0x4d0(%rsp), %rdi
callq 0x86f68
jmp 0xe79ec
jmp 0xe79ee
leaq 0x4cf(%rsp), %rdi
callq 0x867b0
leaq 0x4f8(%rsp), %rdi
callq 0x86f68
jmp 0xe7a0a
jmp 0xe7a0c
leaq 0x4f7(%rsp), %rdi
callq 0x867b0
jmp 0xe7ece
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7afb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7add
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7abf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7aa1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
leaq 0x3e0(%rsp), %rdi
callq 0x86f68
jmp 0xe7a9f
jmp 0xe7aa1
leaq 0x3df(%rsp), %rdi
callq 0x867b0
leaq 0x408(%rsp), %rdi
callq 0x86f68
jmp 0xe7abd
jmp 0xe7abf
leaq 0x407(%rsp), %rdi
callq 0x867b0
leaq 0x430(%rsp), %rdi
callq 0x86f68
jmp 0xe7adb
jmp 0xe7add
leaq 0x42f(%rsp), %rdi
callq 0x867b0
leaq 0x458(%rsp), %rdi
callq 0x86f68
jmp 0xe7af9
jmp 0xe7afb
leaq 0x457(%rsp), %rdi
callq 0x867b0
jmp 0xe7ece
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7bea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7bcc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7bae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7b90
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
leaq 0x340(%rsp), %rdi
callq 0x86f68
jmp 0xe7b8e
jmp 0xe7b90
leaq 0x33f(%rsp), %rdi
callq 0x867b0
leaq 0x368(%rsp), %rdi
callq 0x86f68
jmp 0xe7bac
jmp 0xe7bae
leaq 0x367(%rsp), %rdi
callq 0x867b0
leaq 0x390(%rsp), %rdi
callq 0x86f68
jmp 0xe7bca
jmp 0xe7bcc
leaq 0x38f(%rsp), %rdi
callq 0x867b0
leaq 0x3b8(%rsp), %rdi
callq 0x86f68
jmp 0xe7be8
jmp 0xe7bea
leaq 0x3b7(%rsp), %rdi
callq 0x867b0
jmp 0xe7ece
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7c37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
leaq 0x310(%rsp), %rdi
callq 0x86f68
jmp 0xe7c35
jmp 0xe7c37
leaq 0x30f(%rsp), %rdi
callq 0x867b0
jmp 0xe7ece
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7cb8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7c9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
leaq 0x2c0(%rsp), %rdi
callq 0x86f68
jmp 0xe7c98
jmp 0xe7c9a
leaq 0x2bf(%rsp), %rdi
callq 0x867b0
leaq 0x2e8(%rsp), %rdi
callq 0x86f68
jmp 0xe7cb6
jmp 0xe7cb8
leaq 0x2e7(%rsp), %rdi
callq 0x867b0
jmp 0xe7ece
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7d39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7d1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
leaq 0x270(%rsp), %rdi
callq 0x86f68
jmp 0xe7d19
jmp 0xe7d1b
leaq 0x26f(%rsp), %rdi
callq 0x867b0
leaq 0x298(%rsp), %rdi
callq 0x86f68
jmp 0xe7d37
jmp 0xe7d39
leaq 0x297(%rsp), %rdi
callq 0x867b0
jmp 0xe7ece
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7dba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7d9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
leaq 0x220(%rsp), %rdi
callq 0x86f68
jmp 0xe7d9a
jmp 0xe7d9c
leaq 0x21f(%rsp), %rdi
callq 0x867b0
leaq 0x248(%rsp), %rdi
callq 0x86f68
jmp 0xe7db8
jmp 0xe7dba
leaq 0x247(%rsp), %rdi
callq 0x867b0
jmp 0xe7ece
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7ea9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7e8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7e6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7e4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
leaq 0x180(%rsp), %rdi
callq 0x86f68
jmp 0xe7e4d
jmp 0xe7e4f
leaq 0x17f(%rsp), %rdi
callq 0x867b0
leaq 0x1a8(%rsp), %rdi
callq 0x86f68
jmp 0xe7e6b
jmp 0xe7e6d
leaq 0x1a7(%rsp), %rdi
callq 0x867b0
leaq 0x1d0(%rsp), %rdi
callq 0x86f68
jmp 0xe7e89
jmp 0xe7e8b
leaq 0x1cf(%rsp), %rdi
callq 0x867b0
leaq 0x1f8(%rsp), %rdi
callq 0x86f68
jmp 0xe7ea7
jmp 0xe7ea9
leaq 0x1f7(%rsp), %rdi
callq 0x867b0
jmp 0xe7ece
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7ef5
leaq 0x690(%rsp), %rdi
callq 0x86f68
jmp 0xe7edd
jmp 0xe7ef5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x708(%rsp)
movl %eax, 0x704(%rsp)
jmp 0xe7f06
leaq 0x6b8(%rsp), %rdi
callq 0x86f68
jmp 0xe7f04
jmp 0xe7f06
leaq 0x6e0(%rsp), %rdi
callq 0x86f68
jmp 0xe7f15
jmp 0xe7f17
movq 0x160(%rsp), %rdi
callq 0x92a20
jmp 0xe7f26
jmp 0xe7f28
movq 0x708(%rsp), %rdi
callq 0x86d80
movq %rax, %rdi
callq 0x91290
nopl (%rax)