// File: jovermann[P]streplace/src/CommandLineParser.cpp
// Function: ut1::CommandLineParser::getUsageStr[abi:cxx11]() const
std::string CommandLineParser::getUsageStr() const
{
    std::stringstream ret;

    // Get usage header.
    std::vector<std::string> lines = ut1::splitLines(usage, 80);
    ret << ut1::joinStrings(lines, "\n") << "\n"; // ut1::splitLines() swallows the last LF.

    // Get maximum longOption[=argName] string len.
    size_t maxHelpNameLen = 0;
    for (const auto& opt: options)
    {
        maxHelpNameLen = std::max(maxHelpNameLen, opt.second.getHelpNameLen());
    }

    // Get width/wrap column of help text.
    size_t helpStartCol = maxHelpNameLen + 8;
    size_t helpWidth    = std::max(helpStartCol + 80, size_t(79));
    size_t helpWrapCol  = helpWidth - helpStartCol;

    // Print option list.
    for (const auto& name: optionList)
    {
        // Print option header.
        if (ut1::hasPrefix(name, HEADER_PREFIX))
        {
            ret << name.substr(strlen(HEADER_PREFIX));
            continue;
        }

        const Option* option = getOption(name);
        ret << "  ";
        if (option->shortOption)
        {
            ret << "-" << option->shortOption;
        }
        else
        {
            ret << "  ";
        }
        std::string nameEqArg = option->longOption;
        if (!option->argName.empty())
        {
            nameEqArg += "=" + option->argName;
        }
        ret << " --" << nameEqArg;
        size_t pad = std::max(size_t(0), maxHelpNameLen - nameEqArg.length()) + 1;
        ret << std::string(pad, ' ');
        lines = ut1::splitLines(option->help, helpWrapCol);
        ret << ut1::joinStrings(lines, "\n" + std::string(helpStartCol, ' '));
        std::vector<std::string> braceItems;
        if (option->shortOptionAlias)
        {
            braceItems.push_back("alias=-" + std::string(1, option->shortOptionAlias));
        }
        if (option->isList)
        {
            braceItems.emplace_back("list");
        }
        if (!option->defaultValue.empty())
        {
            braceItems.push_back("default=" + option->defaultValue);
        }
        if (option->value != option->defaultValue)
        {
            if (option->argName.empty())
            {
                braceItems.emplace_back("set");
            }
            else
            {
                braceItems.push_back("value=" + option->value);
            }
        }
        if (option->count > 1)
        {
            braceItems.push_back("count=" + std::to_string(option->count));
        }
        if (!braceItems.empty())
        {
            ret << " (" + ut1::joinStrings(braceItems, ", ") + ")";
        }
        ret << "\n";
    }

    // Get usage footer.
    ret << footer;

    std::string u = ret.str();
    ut1::replaceStringInPlace(u, "$programName", programName);
    ut1::replaceStringInPlace(u, "$version", version);

    return u;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x680, %rsp            # imm = 0x680
movq %rdi, -0x5a0(%rbp)
movq %rdi, %rax
movq %rax, -0x598(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x590(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x7470
movq -0x590(%rbp), %rsi
addq $0xb8, %rsi
leaq -0x1b0(%rbp), %rdi
movl $0x50, %edx
callq 0x11ff0
jmp 0x9adc
leaq -0x188(%rbp), %rax
movq %rax, -0x5b0(%rbp)
leaq -0x201(%rbp), %rdi
movq %rdi, -0x5a8(%rbp)
callq 0x7a50
movq -0x5a8(%rbp), %rdx
leaq 0x40582(%rip), %rsi     # 0x4a08d
leaq -0x200(%rbp), %rdi
callq 0xb310
jmp 0x9b19
leaq -0x1e0(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
leaq -0x200(%rbp), %rdx
callq 0x124b0
jmp 0x9b35
movq -0x5b0(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x7560
movq %rax, -0x5b8(%rbp)
jmp 0x9b51
movq -0x5b8(%rbp), %rdi
leaq 0x4052e(%rip), %rsi     # 0x4a08d
callq 0x75d0
jmp 0x9b66
leaq -0x1e0(%rbp), %rdi
callq 0x73c0
leaq -0x200(%rbp), %rdi
callq 0x73c0
leaq -0x201(%rbp), %rdi
callq 0x7670
movq -0x590(%rbp), %rax
movq $0x0, -0x210(%rbp)
movq %rax, -0x218(%rbp)
movq -0x218(%rbp), %rdi
callq 0xbe70
movq %rax, -0x220(%rbp)
movq -0x218(%rbp), %rdi
callq 0xbea0
movq %rax, -0x228(%rbp)
leaq -0x220(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0xbed0
testb $0x1, %al
jne 0x9be5
jmp 0x9cde
leaq -0x220(%rbp), %rdi
callq 0xbf00
movq %rax, -0x230(%rbp)
movq -0x230(%rbp), %rdi
addq $0x20, %rdi
callq 0x7e10
movq %rax, -0x238(%rbp)
leaq -0x210(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0xbf20
movq %rax, -0x5c0(%rbp)
jmp 0x9c2b
movq -0x5c0(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x210(%rbp)
leaq -0x220(%rbp), %rdi
callq 0xbf60
jmp 0x9bc9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xaa39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0x9cb6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0x9caa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x73c0
leaq -0x200(%rbp), %rdi
callq 0x73c0
leaq -0x201(%rbp), %rdi
callq 0x7670
jmp 0xaa2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xaa2d
movq -0x210(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x240(%rbp)
movq -0x240(%rbp), %rax
addq $0x50, %rax
movq %rax, -0x250(%rbp)
movq $0x4f, -0x258(%rbp)
leaq -0x250(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0xbf20
movq %rax, -0x5c8(%rbp)
jmp 0x9d29
movq -0x590(%rbp), %rax
movq -0x5c8(%rbp), %rcx
movq (%rcx), %rcx
movq %rcx, -0x248(%rbp)
movq -0x248(%rbp), %rcx
subq -0x240(%rbp), %rcx
movq %rcx, -0x260(%rbp)
addq $0x30, %rax
movq %rax, -0x268(%rbp)
movq -0x268(%rbp), %rdi
callq 0xbf90
movq %rax, -0x270(%rbp)
movq -0x268(%rbp), %rdi
callq 0xbfc0
movq %rax, -0x278(%rbp)
leaq -0x270(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0xbff0
testb $0x1, %al
jne 0x9da3
jmp 0xa848
leaq -0x270(%rbp), %rdi
callq 0xc030
movq %rax, -0x280(%rbp)
movq -0x280(%rbp), %rax
movq %rax, -0x5d8(%rbp)
leaq -0x2a1(%rbp), %rdi
movq %rdi, -0x5d0(%rbp)
callq 0x7a50
movq -0x5d0(%rbp), %rdx
leaq 0x4025e(%rip), %rsi     # 0x4a043
leaq -0x2a0(%rbp), %rdi
callq 0xb310
jmp 0x9df3
movq -0x5d8(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x113c0
movb %al, -0x5d9(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x73c0
leaq -0x2a1(%rbp), %rdi
callq 0x7670
movb -0x5d9(%rbp), %al
testb $0x1, %al
jne 0x9e33
jmp 0x9ece
leaq -0x188(%rbp), %rax
movq %rax, -0x5e8(%rbp)
movq -0x280(%rbp), %rsi
leaq -0x2c8(%rbp), %rdi
movl $0x7, %edx
movq $-0x1, %rcx
callq 0x7630
jmp 0x9e62
movq -0x5e8(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x7560
jmp 0x9e77
leaq -0x2c8(%rbp), %rdi
callq 0x73c0
jmp 0xa81a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x2a1(%rbp), %rdi
callq 0x7670
jmp 0xaa2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x2c8(%rbp), %rdi
callq 0x73c0
jmp 0xaa2d
movq -0x590(%rbp), %rdi
movq -0x280(%rbp), %rsi
callq 0xab60
movq %rax, -0x5f0(%rbp)
jmp 0x9eea
movq -0x5f0(%rbp), %rax
movq %rax, -0x2d0(%rbp)
leaq -0x188(%rbp), %rdi
leaq 0x40255(%rip), %rsi     # 0x4a15b
callq 0x75d0
jmp 0x9f0d
movq -0x2d0(%rbp), %rax
cmpb $0x0, (%rax)
je 0x9f4f
leaq -0x188(%rbp), %rdi
leaq 0x40373(%rip), %rsi     # 0x4a29a
callq 0x75d0
movq %rax, -0x5f8(%rbp)
jmp 0x9f35
movq -0x5f8(%rbp), %rdi
movq -0x2d0(%rbp), %rax
movsbl (%rax), %esi
callq 0x7730
jmp 0x9f4d
jmp 0x9f66
leaq -0x188(%rbp), %rdi
leaq 0x401fe(%rip), %rsi     # 0x4a15b
callq 0x75d0
jmp 0x9f64
jmp 0x9f66
movq -0x2d0(%rbp), %rsi
addq $0x8, %rsi
leaq -0x2f0(%rbp), %rdi
callq 0x7280
jmp 0x9f7f
movq -0x2d0(%rbp), %rdi
addq $0x48, %rdi
callq 0x7990
testb $0x1, %al
jne 0xa010
movq -0x2d0(%rbp), %rdx
addq $0x48, %rdx
leaq 0x401d8(%rip), %rsi     # 0x4a17d
leaq -0x310(%rbp), %rdi
callq 0xb5b0
jmp 0x9fb3
leaq -0x2f0(%rbp), %rdi
leaq -0x310(%rbp), %rsi
callq 0x77b0
jmp 0x9fc8
leaq -0x310(%rbp), %rdi
callq 0x73c0
jmp 0xa010
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa837
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x73c0
jmp 0xa837
leaq -0x188(%rbp), %rdi
leaq 0x401b8(%rip), %rsi     # 0x4a1d6
callq 0x75d0
movq %rax, -0x600(%rbp)
jmp 0xa02c
movq -0x600(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
callq 0x7560
jmp 0xa041
movq $0x0, -0x320(%rbp)
movq -0x210(%rbp), %rax
movq %rax, -0x610(%rbp)
leaq -0x2f0(%rbp), %rdi
callq 0x78e0
movq %rax, %rcx
movq -0x610(%rbp), %rax
subq %rcx, %rax
movq %rax, -0x328(%rbp)
leaq -0x320(%rbp), %rdi
leaq -0x328(%rbp), %rsi
callq 0xbf20
movq %rax, -0x608(%rbp)
jmp 0xa096
movq -0x608(%rbp), %rax
movq (%rax), %rax
incq %rax
movq %rax, -0x318(%rbp)
leaq -0x188(%rbp), %rax
movq %rax, -0x628(%rbp)
movq -0x318(%rbp), %rax
movq %rax, -0x620(%rbp)
leaq -0x349(%rbp), %rdi
movq %rdi, -0x618(%rbp)
callq 0x7a50
movq -0x620(%rbp), %rsi
movq -0x618(%rbp), %rcx
leaq -0x348(%rbp), %rdi
movl $0x20, %edx
callq 0xb7c0
jmp 0xa0fa
movq -0x628(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x7560
jmp 0xa10f
leaq -0x348(%rbp), %rdi
callq 0x73c0
leaq -0x349(%rbp), %rdi
callq 0x7670
movq -0x2d0(%rbp), %rsi
addq $0x28, %rsi
movq -0x260(%rbp), %rdx
leaq -0x368(%rbp), %rdi
callq 0x11ff0
jmp 0xa147
leaq -0x1b0(%rbp), %rdi
leaq -0x368(%rbp), %rsi
movq %rsi, -0x648(%rbp)
callq 0xc050
movq -0x648(%rbp), %rdi
callq 0xb3c0
leaq -0x188(%rbp), %rax
movq %rax, -0x640(%rbp)
movq -0x240(%rbp), %rax
movq %rax, -0x638(%rbp)
leaq -0x3c9(%rbp), %rdi
movq %rdi, -0x630(%rbp)
callq 0x7a50
movq -0x638(%rbp), %rsi
movq -0x630(%rbp), %rcx
leaq -0x3c8(%rbp), %rdi
movl $0x20, %edx
callq 0xb7c0
jmp 0xa1bd
leaq 0x3fec9(%rip), %rsi     # 0x4a08d
leaq -0x3a8(%rbp), %rdi
leaq -0x3c8(%rbp), %rdx
callq 0xb770
jmp 0xa1d9
leaq -0x388(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
leaq -0x3a8(%rbp), %rdx
callq 0x124b0
jmp 0xa1f5
movq -0x640(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x7560
jmp 0xa20a
leaq -0x388(%rbp), %rdi
callq 0x73c0
leaq -0x3a8(%rbp), %rdi
callq 0x73c0
leaq -0x3c8(%rbp), %rdi
callq 0x73c0
leaq -0x3c9(%rbp), %rdi
callq 0x7670
leaq -0x3e8(%rbp), %rdi
callq 0xb2d0
movq -0x2d0(%rbp), %rax
cmpb $0x0, 0x1(%rax)
je 0xa41e
movq -0x2d0(%rbp), %rax
movsbl 0x1(%rax), %eax
movl %eax, -0x654(%rbp)
leaq -0x429(%rbp), %rdi
movq %rdi, -0x650(%rbp)
callq 0x7a50
movl -0x654(%rbp), %edx
movq -0x650(%rbp), %rcx
leaq -0x428(%rbp), %rdi
movl $0x1, %esi
callq 0xb7c0
jmp 0xa29b
leaq 0x3febc(%rip), %rsi     # 0x4a15e
leaq -0x408(%rbp), %rdi
leaq -0x428(%rbp), %rdx
callq 0xb770
jmp 0xa2b7
leaq -0x3e8(%rbp), %rdi
leaq -0x408(%rbp), %rsi
callq 0xc080
jmp 0xa2cc
leaq -0x408(%rbp), %rdi
callq 0x73c0
leaq -0x428(%rbp), %rdi
callq 0x73c0
leaq -0x429(%rbp), %rdi
callq 0x7670
jmp 0xa41e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa327
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x348(%rbp), %rdi
callq 0x73c0
leaq -0x349(%rbp), %rdi
callq 0x7670
jmp 0xa837
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa3aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa39e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa392
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x73c0
leaq -0x3a8(%rbp), %rdi
callq 0x73c0
leaq -0x3c8(%rbp), %rdi
callq 0x73c0
leaq -0x3c9(%rbp), %rdi
callq 0x7670
jmp 0xa837
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa40d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa401
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x408(%rbp), %rdi
callq 0x73c0
leaq -0x428(%rbp), %rdi
callq 0x73c0
leaq -0x429(%rbp), %rdi
callq 0x7670
jmp 0xa82b
movq -0x2d0(%rbp), %rax
testb $0x1, 0x88(%rax)
je 0xa45c
leaq 0x3fd31(%rip), %rsi     # 0x4a166
leaq -0x3e8(%rbp), %rdi
callq 0xc0b0
jmp 0xa443
jmp 0xa45c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa82b
movq -0x2d0(%rbp), %rdi
addq $0x68, %rdi
callq 0x7990
testb $0x1, %al
jne 0xa4d6
movq -0x2d0(%rbp), %rdx
addq $0x68, %rdx
leaq 0x3fce9(%rip), %rsi     # 0x4a16b
leaq -0x450(%rbp), %rdi
callq 0xb5b0
jmp 0xa490
leaq -0x3e8(%rbp), %rdi
leaq -0x450(%rbp), %rsi
callq 0xc080
jmp 0xa4a5
leaq -0x450(%rbp), %rdi
callq 0x73c0
jmp 0xa4d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x450(%rbp), %rdi
callq 0x73c0
jmp 0xa82b
movq -0x2d0(%rbp), %rdi
addq $0x90, %rdi
movq -0x2d0(%rbp), %rsi
addq $0x68, %rsi
callq 0xc130
testb $0x1, %al
jne 0xa4fd
jmp 0xa595
movq -0x2d0(%rbp), %rdi
addq $0x48, %rdi
callq 0x7990
testb $0x1, %al
jne 0xa513
jmp 0xa52a
leaq 0x3fc5a(%rip), %rsi     # 0x4a174
leaq -0x3e8(%rbp), %rdi
callq 0xc160
jmp 0xa528
jmp 0xa593
movq -0x2d0(%rbp), %rdx
addq $0x90, %rdx
leaq 0x3fc39(%rip), %rsi     # 0x4a178
leaq -0x470(%rbp), %rdi
callq 0xb5b0
jmp 0xa54d
leaq -0x3e8(%rbp), %rdi
leaq -0x470(%rbp), %rsi
callq 0xc080
jmp 0xa562
leaq -0x470(%rbp), %rdi
callq 0x73c0
jmp 0xa593
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x470(%rbp), %rdi
callq 0x73c0
jmp 0xa82b
jmp 0xa595
movq -0x2d0(%rbp), %rax
cmpl $0x1, 0xb0(%rax)
jbe 0xa652
movq -0x2d0(%rbp), %rax
movl 0xb0(%rax), %esi
leaq -0x4b0(%rbp), %rdi
callq 0xb1d0
jmp 0xa5c4
leaq 0x3fbb4(%rip), %rsi     # 0x4a17f
leaq -0x490(%rbp), %rdi
leaq -0x4b0(%rbp), %rdx
callq 0xb770
jmp 0xa5e0
leaq -0x3e8(%rbp), %rdi
leaq -0x490(%rbp), %rsi
callq 0xc080
jmp 0xa5f5
leaq -0x490(%rbp), %rdi
callq 0x73c0
leaq -0x4b0(%rbp), %rdi
callq 0x73c0
jmp 0xa652
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa641
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x490(%rbp), %rdi
callq 0x73c0
leaq -0x4b0(%rbp), %rdi
callq 0x73c0
jmp 0xa82b
leaq -0x3e8(%rbp), %rdi
callq 0xc1e0
testb $0x1, %al
jne 0xa7ed
leaq -0x188(%rbp), %rax
movq %rax, -0x668(%rbp)
leaq -0x531(%rbp), %rdi
movq %rdi, -0x660(%rbp)
callq 0x7a50
movq -0x660(%rbp), %rdx
leaq 0x3faf4(%rip), %rsi     # 0x4a189
leaq -0x530(%rbp), %rdi
callq 0xb310
jmp 0xa6a3
leaq -0x510(%rbp), %rdi
leaq -0x3e8(%rbp), %rsi
leaq -0x530(%rbp), %rdx
callq 0x124b0
jmp 0xa6bf
leaq 0x3fac0(%rip), %rsi     # 0x4a186
leaq -0x4f0(%rbp), %rdi
leaq -0x510(%rbp), %rdx
callq 0xb770
jmp 0xa6db
leaq 0x3fb6a(%rip), %rdx     # 0x4a24c
leaq -0x4d0(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
callq 0xb720
jmp 0xa6f7
movq -0x668(%rbp), %rdi
leaq -0x4d0(%rbp), %rsi
callq 0x7560
jmp 0xa70c
leaq -0x4d0(%rbp), %rdi
callq 0x73c0
leaq -0x4f0(%rbp), %rdi
callq 0x73c0
leaq -0x510(%rbp), %rdi
callq 0x73c0
leaq -0x530(%rbp), %rdi
callq 0x73c0
leaq -0x531(%rbp), %rdi
callq 0x7670
jmp 0xa7ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa7df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa7d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa7c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa7bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x4d0(%rbp), %rdi
callq 0x73c0
leaq -0x4f0(%rbp), %rdi
callq 0x73c0
leaq -0x510(%rbp), %rdi
callq 0x73c0
leaq -0x530(%rbp), %rdi
callq 0x73c0
leaq -0x531(%rbp), %rdi
callq 0x7670
jmp 0xa82b
leaq -0x188(%rbp), %rdi
leaq 0x3f892(%rip), %rsi     # 0x4a08d
callq 0x75d0
jmp 0xa802
leaq -0x3e8(%rbp), %rdi
callq 0xb3c0
leaq -0x2f0(%rbp), %rdi
callq 0x73c0
leaq -0x270(%rbp), %rdi
callq 0xc220
jmp 0x9d87
leaq -0x3e8(%rbp), %rdi
callq 0xb3c0
leaq -0x2f0(%rbp), %rdi
callq 0x73c0
jmp 0xaa2d
movq -0x590(%rbp), %rsi
leaq -0x188(%rbp), %rdi
addq $0xd8, %rsi
callq 0x7560
jmp 0xa864
movq -0x5a0(%rbp), %rdi
movb $0x0, -0x532(%rbp)
leaq -0x198(%rbp), %rsi
callq 0x75c0
jmp 0xa880
leaq -0x559(%rbp), %rdi
movq %rdi, -0x670(%rbp)
callq 0x7a50
movq -0x670(%rbp), %rdx
leaq 0x3f8eb(%rip), %rsi     # 0x4a18c
leaq -0x558(%rbp), %rdi
callq 0xb310
jmp 0xa8af
movq -0x5a0(%rbp), %rdi
movq -0x590(%rbp), %rdx
addq $0x98, %rdx
leaq -0x558(%rbp), %rsi
callq 0x11540
jmp 0xa8d2
leaq -0x558(%rbp), %rdi
callq 0x73c0
leaq -0x559(%rbp), %rdi
callq 0x7670
leaq -0x581(%rbp), %rdi
movq %rdi, -0x678(%rbp)
callq 0x7a50
movq -0x678(%rbp), %rdx
leaq 0x3f88e(%rip), %rsi     # 0x4a199
leaq -0x580(%rbp), %rdi
callq 0xb310
jmp 0xa919
movq -0x5a0(%rbp), %rdi
movq -0x590(%rbp), %rdx
addq $0xf8, %rdx
leaq -0x580(%rbp), %rsi
callq 0x11540
jmp 0xa93c
leaq -0x580(%rbp), %rdi
callq 0x73c0
leaq -0x581(%rbp), %rdi
callq 0x7670
movb $0x1, -0x532(%rbp)
testb $0x1, -0x532(%rbp)
jne 0xa9f9
jmp 0xa9ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa99f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x558(%rbp), %rdi
callq 0x73c0
leaq -0x559(%rbp), %rdi
callq 0x7670
jmp 0xaa21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa9df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x580(%rbp), %rdi
callq 0x73c0
leaq -0x581(%rbp), %rdi
callq 0x7670
jmp 0xaa21
movq -0x5a0(%rbp), %rdi
callq 0x73c0
leaq -0x1b0(%rbp), %rdi
callq 0xb3c0
leaq -0x198(%rbp), %rdi
callq 0x74b0
movq -0x598(%rbp), %rax
addq $0x680, %rsp            # imm = 0x680
popq %rbp
retq
movq -0x5a0(%rbp), %rdi
callq 0x73c0
leaq -0x1b0(%rbp), %rdi
callq 0xb3c0
leaq -0x198(%rbp), %rdi
callq 0x74b0
movq -0x1b8(%rbp), %rdi
callq 0x7a30
nopw %cs:(%rax,%rax)