// File: zeeev[P]DASVC/bamtools/src/toolkit/bamtools_resolve.cpp
// Function: BamTools::ResolveTool::ResolveToolPrivate::CheckSettings(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&)
bool ResolveTool::ResolveToolPrivate::CheckSettings(vector<string>& errors) {

    // ensure clean slate
    errors.clear();

    // if MakeStats mode
    if ( m_settings->IsMakeStats ) {

        // ensure mutex mode
        if ( m_settings->IsMarkPairs )
            errors.push_back("Cannot run in both -makeStats & -markPairs modes. Please select ONE.");
        if ( m_settings->IsTwoPass )
            errors.push_back("Cannot run in both -makeStats & -twoPass modes. Please select ONE.");

        // error if output BAM options supplied
        if ( m_settings->HasOutputBamFile )
            errors.push_back("Cannot use -out (output BAM file) in -makeStats mode.");
        if ( m_settings->IsForceCompression )
            errors.push_back("Cannot use -forceCompression. No output BAM file is being generated.");

        // make sure required stats file supplied
        if ( !m_settings->HasStatsFile )
            errors.push_back("Ouptut stats filename required for -makeStats mode. Please specify one using -stats option.");

        // check for UseStats options
        if ( m_settings->HasForceMarkReadGroups )
            errors.push_back("Cannot use -forceMarkReadGroups. -markPairs options are DISABLED in -makeStats mode.");
    }

    // if MarkPairs mode
    else if ( m_settings->IsMarkPairs ) {

        // ensure mutex mode
        if ( m_settings->IsMakeStats )
            errors.push_back("Cannot run in both -makeStats & -markPairs modes. Please select ONE.");
        if ( m_settings->IsTwoPass )
            errors.push_back("Cannot run in both -markPairs & -twoPass modes. Please select ONE.");

        // make sure required stats file supplied
        if ( !m_settings->HasStatsFile )
            errors.push_back("Input stats filename required for -markPairs mode. Please specify one using -stats option.");

        // check for MakeStats options
        if ( m_settings->HasConfidenceInterval )
            errors.push_back("Cannot use -ci. -makeStats options are DISABLED is -markPairs mode.");
    }

    // if TwoPass mode
    else if ( m_settings->IsTwoPass ) {

        // ensure mutex mode
        if ( m_settings->IsMakeStats )
            errors.push_back("Cannot run in both -makeStats & -twoPass modes. Please select ONE.");
        if ( m_settings->IsMarkPairs )
            errors.push_back("Cannot run in both -markPairs & -twoPass modes. Please select ONE.");

        // make sure input is file not stdin
        if ( !m_settings->HasInputBamFile || m_settings->InputBamFilename == Options::StandardIn() )
            errors.push_back("Cannot run -twoPass mode with BAM data from stdin. Please specify existing file using -in option.");
    }

    // no mode selected
    else
        errors.push_back("No resolve mode specified. Please select ONE of the following: -makeStats, -markPairs, or -twoPass. See help for more info.");

    // boundary checks on values
    if ( m_settings->HasConfidenceInterval ) {
        if ( m_settings->ConfidenceInterval < 0.0 || m_settings->ConfidenceInterval > 1.0 )
            errors.push_back("Invalid confidence interval. Must be between 0 and 1");
    }
    if ( m_settings->HasMinimumMapQuality ) {
        if ( m_settings->MinimumMapQuality >= 256 )
            errors.push_back("Invalid minimum map quality. Must be between 0 and 255");
    }
    if ( m_settings->HasUnusedModelThreshold ) {
        if ( m_settings->UnusedModelThreshold < 0.0 || m_settings->UnusedModelThreshold > 1.0 )
            errors.push_back("Invalid unused model threshold. Must be between 0 and 1");
    }

    // return success if no errors found
    return ( errors.empty() );
}

// Assembly:
subq $0x3e8, %rsp            # imm = 0x3E8
movq %rdi, 0x3e0(%rsp)
movq %rsi, 0x3d8(%rsp)
movq 0x3e0(%rsp), %rax
movq %rax, 0x118(%rsp)
movq 0x3d8(%rsp), %rdi
callq 0xcfcc0
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, (%rax)
je 0xca1e9
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x1(%rax)
je 0xc9da2
movq 0x3d8(%rsp), %rax
movq %rax, 0x108(%rsp)
leaq 0x3b7(%rsp), %rdi
movq %rdi, 0x110(%rsp)
callq 0x86da0
movq 0x110(%rsp), %rdx
leaq 0x66f61(%rip), %rsi     # 0x130c72
leaq 0x3b8(%rsp), %rdi
callq 0x86a00
jmp 0xc9d20
movq 0x108(%rsp), %rdi
leaq 0x3b8(%rsp), %rsi
callq 0x91220
jmp 0xc9d37
leaq 0x3b8(%rsp), %rdi
callq 0x86f68
jmp 0xc9d46
leaq 0x3b7(%rsp), %rdi
callq 0x867b0
jmp 0xc9da2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xc9d90
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x3b8(%rsp), %rdi
callq 0x86f68
jmp 0xc9d8e
jmp 0xc9d90
leaq 0x3b7(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x2(%rax)
je 0xc9e7c
movq 0x3d8(%rsp), %rax
movq %rax, 0xf8(%rsp)
leaq 0x37f(%rsp), %rdi
movq %rdi, 0x100(%rsp)
callq 0x86da0
movq 0x100(%rsp), %rdx
leaq 0x66ecc(%rip), %rsi     # 0x130cb7
leaq 0x380(%rsp), %rdi
callq 0x86a00
jmp 0xc9dfa
movq 0xf8(%rsp), %rdi
leaq 0x380(%rsp), %rsi
callq 0x91220
jmp 0xc9e11
leaq 0x380(%rsp), %rdi
callq 0x86f68
jmp 0xc9e20
leaq 0x37f(%rsp), %rdi
callq 0x867b0
jmp 0xc9e7c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xc9e6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x380(%rsp), %rdi
callq 0x86f68
jmp 0xc9e68
jmp 0xc9e6a
leaq 0x37f(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x4(%rax)
je 0xc9f56
movq 0x3d8(%rsp), %rax
movq %rax, 0xe8(%rsp)
leaq 0x357(%rsp), %rdi
movq %rdi, 0xf0(%rsp)
callq 0x86da0
movq 0xf0(%rsp), %rdx
leaq 0x66e35(%rip), %rsi     # 0x130cfa
leaq 0x358(%rsp), %rdi
callq 0x86a00
jmp 0xc9ed4
movq 0xe8(%rsp), %rdi
leaq 0x358(%rsp), %rsi
callq 0x91220
jmp 0xc9eeb
leaq 0x358(%rsp), %rdi
callq 0x86f68
jmp 0xc9efa
leaq 0x357(%rsp), %rdi
callq 0x867b0
jmp 0xc9f56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xc9f44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x358(%rsp), %rdi
callq 0x86f68
jmp 0xc9f42
jmp 0xc9f44
leaq 0x357(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x6(%rax)
je 0xca030
movq 0x3d8(%rsp), %rax
movq %rax, 0xd8(%rsp)
leaq 0x32f(%rsp), %rdi
movq %rdi, 0xe0(%rsp)
callq 0x86da0
movq 0xe0(%rsp), %rdx
leaq 0x66d91(%rip), %rsi     # 0x130d30
leaq 0x330(%rsp), %rdi
callq 0x86a00
jmp 0xc9fae
movq 0xd8(%rsp), %rdi
leaq 0x330(%rsp), %rsi
callq 0x91220
jmp 0xc9fc5
leaq 0x330(%rsp), %rdi
callq 0x86f68
jmp 0xc9fd4
leaq 0x32f(%rsp), %rdi
callq 0x867b0
jmp 0xca030
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xca01e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x330(%rsp), %rdi
callq 0x86f68
jmp 0xca01c
jmp 0xca01e
leaq 0x32f(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x5(%rax)
jne 0xca10a
movq 0x3d8(%rsp), %rax
movq %rax, 0xc8(%rsp)
leaq 0x307(%rsp), %rdi
movq %rdi, 0xd0(%rsp)
callq 0x86da0
movq 0xd0(%rsp), %rdx
leaq 0x66cfc(%rip), %rsi     # 0x130d75
leaq 0x308(%rsp), %rdi
callq 0x86a00
jmp 0xca088
movq 0xc8(%rsp), %rdi
leaq 0x308(%rsp), %rsi
callq 0x91220
jmp 0xca09f
leaq 0x308(%rsp), %rdi
callq 0x86f68
jmp 0xca0ae
leaq 0x307(%rsp), %rdi
callq 0x867b0
jmp 0xca10a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xca0f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x308(%rsp), %rdi
callq 0x86f68
jmp 0xca0f6
jmp 0xca0f8
leaq 0x307(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x8(%rax)
je 0xca1e4
movq 0x3d8(%rsp), %rax
movq %rax, 0xb8(%rsp)
leaq 0x2df(%rsp), %rdi
movq %rdi, 0xc0(%rsp)
callq 0x86da0
movq 0xc0(%rsp), %rdx
leaq 0x66c7e(%rip), %rsi     # 0x130dd1
leaq 0x2e0(%rsp), %rdi
callq 0x86a00
jmp 0xca162
movq 0xb8(%rsp), %rdi
leaq 0x2e0(%rsp), %rsi
callq 0x91220
jmp 0xca179
leaq 0x2e0(%rsp), %rdi
callq 0x86f68
jmp 0xca188
leaq 0x2df(%rsp), %rdi
callq 0x867b0
jmp 0xca1e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xca1d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x2e0(%rsp), %rdi
callq 0x86f68
jmp 0xca1d0
jmp 0xca1d2
leaq 0x2df(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
jmp 0xca8cf
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x1(%rax)
je 0xca564
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, (%rax)
je 0xca2d7
movq 0x3d8(%rsp), %rax
movq %rax, 0xa8(%rsp)
leaq 0x2b7(%rsp), %rdi
movq %rdi, 0xb0(%rsp)
callq 0x86da0
movq 0xb0(%rsp), %rdx
leaq 0x66a2c(%rip), %rsi     # 0x130c72
leaq 0x2b8(%rsp), %rdi
callq 0x86a00
jmp 0xca255
movq 0xa8(%rsp), %rdi
leaq 0x2b8(%rsp), %rsi
callq 0x91220
jmp 0xca26c
leaq 0x2b8(%rsp), %rdi
callq 0x86f68
jmp 0xca27b
leaq 0x2b7(%rsp), %rdi
callq 0x867b0
jmp 0xca2d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xca2c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x2b8(%rsp), %rdi
callq 0x86f68
jmp 0xca2c3
jmp 0xca2c5
leaq 0x2b7(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x2(%rax)
je 0xca3b1
movq 0x3d8(%rsp), %rax
movq %rax, 0x98(%rsp)
leaq 0x28f(%rsp), %rdi
movq %rdi, 0xa0(%rsp)
callq 0x86da0
movq 0xa0(%rsp), %rdx
leaq 0x66b06(%rip), %rsi     # 0x130e26
leaq 0x290(%rsp), %rdi
callq 0x86a00
jmp 0xca32f
movq 0x98(%rsp), %rdi
leaq 0x290(%rsp), %rsi
callq 0x91220
jmp 0xca346
leaq 0x290(%rsp), %rdi
callq 0x86f68
jmp 0xca355
leaq 0x28f(%rsp), %rdi
callq 0x867b0
jmp 0xca3b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xca39f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x290(%rsp), %rdi
callq 0x86f68
jmp 0xca39d
jmp 0xca39f
leaq 0x28f(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x5(%rax)
jne 0xca48b
movq 0x3d8(%rsp), %rax
movq %rax, 0x88(%rsp)
leaq 0x267(%rsp), %rdi
movq %rdi, 0x90(%rsp)
callq 0x86da0
movq 0x90(%rsp), %rdx
leaq 0x66a6f(%rip), %rsi     # 0x130e69
leaq 0x268(%rsp), %rdi
callq 0x86a00
jmp 0xca409
movq 0x88(%rsp), %rdi
leaq 0x268(%rsp), %rsi
callq 0x91220
jmp 0xca420
leaq 0x268(%rsp), %rdi
callq 0x86f68
jmp 0xca42f
leaq 0x267(%rsp), %rdi
callq 0x867b0
jmp 0xca48b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xca479
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x268(%rsp), %rdi
callq 0x86f68
jmp 0xca477
jmp 0xca479
leaq 0x267(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x7(%rax)
je 0xca55f
movq 0x3d8(%rsp), %rax
movq %rax, 0x78(%rsp)
leaq 0x23f(%rsp), %rdi
movq %rdi, 0x80(%rsp)
callq 0x86da0
movq 0x80(%rsp), %rdx
leaq 0x669f3(%rip), %rsi     # 0x130ec4
leaq 0x240(%rsp), %rdi
callq 0x86a00
jmp 0xca4e0
movq 0x78(%rsp), %rdi
leaq 0x240(%rsp), %rsi
callq 0x91220
jmp 0xca4f4
leaq 0x240(%rsp), %rdi
callq 0x86f68
jmp 0xca503
leaq 0x23f(%rsp), %rdi
callq 0x867b0
jmp 0xca55f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xca54d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x240(%rsp), %rdi
callq 0x86f68
jmp 0xca54b
jmp 0xca54d
leaq 0x23f(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
jmp 0xca8cd
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x2(%rax)
je 0xca812
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, (%rax)
je 0xca646
movq 0x3d8(%rsp), %rax
movq %rax, 0x68(%rsp)
leaq 0x217(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0x86da0
movq 0x70(%rsp), %rdx
leaq 0x666ff(%rip), %rsi     # 0x130cb7
leaq 0x218(%rsp), %rdi
callq 0x86a00
jmp 0xca5c7
movq 0x68(%rsp), %rdi
leaq 0x218(%rsp), %rsi
callq 0x91220
jmp 0xca5db
leaq 0x218(%rsp), %rdi
callq 0x86f68
jmp 0xca5ea
leaq 0x217(%rsp), %rdi
callq 0x867b0
jmp 0xca646
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xca634
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x218(%rsp), %rdi
callq 0x86f68
jmp 0xca632
jmp 0xca634
leaq 0x217(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x1(%rax)
je 0xca714
movq 0x3d8(%rsp), %rax
movq %rax, 0x58(%rsp)
leaq 0x1ef(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0x86da0
movq 0x60(%rsp), %rdx
leaq 0x667a0(%rip), %rsi     # 0x130e26
leaq 0x1f0(%rsp), %rdi
callq 0x86a00
jmp 0xca695
movq 0x58(%rsp), %rdi
leaq 0x1f0(%rsp), %rsi
callq 0x91220
jmp 0xca6a9
leaq 0x1f0(%rsp), %rdi
callq 0x86f68
jmp 0xca6b8
leaq 0x1ef(%rsp), %rdi
callq 0x867b0
jmp 0xca714
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xca702
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x1f0(%rsp), %rdi
callq 0x86f68
jmp 0xca700
jmp 0xca702
leaq 0x1ef(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x3(%rax)
je 0xca754
movq 0x118(%rsp), %rax
movq (%rax), %rax
addq $0x10, %rax
movq %rax, 0x50(%rsp)
callq 0x10f280
movq 0x50(%rsp), %rdi
movq %rax, %rsi
callq 0x91630
testb $0x1, %al
jne 0xca754
jmp 0xca80d
movq 0x3d8(%rsp), %rax
movq %rax, 0x40(%rsp)
leaq 0x1c7(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x86da0
movq 0x48(%rsp), %rdx
leaq 0x66789(%rip), %rsi     # 0x130f08
leaq 0x1c8(%rsp), %rdi
callq 0x86a00
jmp 0xca78e
movq 0x40(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
callq 0x91220
jmp 0xca7a2
leaq 0x1c8(%rsp), %rdi
callq 0x86f68
jmp 0xca7b1
leaq 0x1c7(%rsp), %rdi
callq 0x867b0
jmp 0xca80d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xca7fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x1c8(%rsp), %rdi
callq 0x86f68
jmp 0xca7f9
jmp 0xca7fb
leaq 0x1c7(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
jmp 0xca8cb
movq 0x3d8(%rsp), %rax
movq %rax, 0x30(%rsp)
leaq 0x19f(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x86da0
movq 0x38(%rsp), %rdx
leaq 0x6672d(%rip), %rsi     # 0x130f6a
leaq 0x1a0(%rsp), %rdi
callq 0x86a00
jmp 0xca84c
movq 0x30(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x91220
jmp 0xca860
leaq 0x1a0(%rsp), %rdi
callq 0x86f68
jmp 0xca86f
leaq 0x19f(%rsp), %rdi
callq 0x867b0
jmp 0xca8cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xca8b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x1a0(%rsp), %rdi
callq 0x86f68
jmp 0xca8b7
jmp 0xca8b9
leaq 0x19f(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
jmp 0xca8cd
jmp 0xca8cf
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x7(%rax)
je 0xca9dc
movq 0x118(%rsp), %rax
movq (%rax), %rax
xorps %xmm0, %xmm0
ucomisd 0x90(%rax), %xmm0
ja 0xca921
movq 0x118(%rsp), %rax
movq (%rax), %rax
movsd 0x90(%rax), %xmm0
movsd 0x65eb9(%rip), %xmm1    # 0x1307d0
ucomisd %xmm1, %xmm0
jbe 0xca9da
movq 0x3d8(%rsp), %rax
movq %rax, 0x20(%rsp)
leaq 0x177(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x86da0
movq 0x28(%rsp), %rdx
leaq 0x6669a(%rip), %rsi     # 0x130fe6
leaq 0x178(%rsp), %rdi
callq 0x86a00
jmp 0xca95b
movq 0x20(%rsp), %rdi
leaq 0x178(%rsp), %rsi
callq 0x91220
jmp 0xca96f
leaq 0x178(%rsp), %rdi
callq 0x86f68
jmp 0xca97e
leaq 0x177(%rsp), %rdi
callq 0x867b0
jmp 0xca9da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xca9c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x178(%rsp), %rdi
callq 0x86f68
jmp 0xca9c6
jmp 0xca9c8
leaq 0x177(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
jmp 0xca9dc
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x9(%rax)
je 0xcaac9
movq 0x118(%rsp), %rax
movq (%rax), %rax
movzwl 0x98(%rax), %eax
cmpl $0x100, %eax            # imm = 0x100
jl 0xcaac7
movq 0x3d8(%rsp), %rax
movq %rax, 0x10(%rsp)
leaq 0x14f(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x86da0
movq 0x18(%rsp), %rdx
leaq 0x665e2(%rip), %rsi     # 0x13101b
leaq 0x150(%rsp), %rdi
callq 0x86a00
jmp 0xcaa48
movq 0x10(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x91220
jmp 0xcaa5c
leaq 0x150(%rsp), %rdi
callq 0x86f68
jmp 0xcaa6b
leaq 0x14f(%rsp), %rdi
callq 0x867b0
jmp 0xcaac7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xcaab5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x150(%rsp), %rdi
callq 0x86f68
jmp 0xcaab3
jmp 0xcaab5
leaq 0x14f(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
jmp 0xcaac9
movq 0x118(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0xa(%rax)
je 0xcabd1
movq 0x118(%rsp), %rax
movq (%rax), %rax
xorps %xmm0, %xmm0
ucomisd 0xa0(%rax), %xmm0
ja 0xcab1b
movq 0x118(%rsp), %rax
movq (%rax), %rax
movsd 0xa0(%rax), %xmm0
movsd 0x65cbf(%rip), %xmm1    # 0x1307d0
ucomisd %xmm1, %xmm0
jbe 0xcabcf
movq 0x3d8(%rsp), %rax
movq %rax, (%rsp)
leaq 0x127(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x86da0
movq 0x8(%rsp), %rdx
leaq 0x6650d(%rip), %rsi     # 0x131052
leaq 0x128(%rsp), %rdi
callq 0x86a00
jmp 0xcab54
movq (%rsp), %rdi
leaq 0x128(%rsp), %rsi
callq 0x91220
jmp 0xcab67
leaq 0x128(%rsp), %rdi
callq 0x86f68
jmp 0xcab76
leaq 0x127(%rsp), %rdi
callq 0x867b0
jmp 0xcabcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
jmp 0xcabc0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a8(%rsp)
movl %eax, 0x3a4(%rsp)
leaq 0x128(%rsp), %rdi
callq 0x86f68
jmp 0xcabbe
jmp 0xcabc0
leaq 0x127(%rsp), %rdi
callq 0x867b0
jmp 0xcabe8
jmp 0xcabd1
movq 0x3d8(%rsp), %rdi
callq 0xcfce0
andb $0x1, %al
addq $0x3e8, %rsp            # imm = 0x3E8
retq
movq 0x3a8(%rsp), %rdi
callq 0x86d80
movq %rax, %rdi
callq 0x91290
nopl (%rax)