// File: /workspace/github_cpp_makefile_star2_O1/jovermann[P]streplace/src/streplace.cpp
// Function: Streplace::Streplace(ut1::CommandLineParser const&)
explicit Streplace(const ut1::CommandLineParser& cl)
    {
        // Get command line options.
        recursive   = cl("recursive");
        followLinks = cl("follow-links");
        all         = cl("all");

        ignoreCase = cl("ignore-case");
        noRegex    = cl("no-regex");
        wholeWords = cl("whole-words");
        equals     = cl.getStr("equals");
        dollar     = cl.getStr("dollar");

        verbose        = cl.getCount("verbose");
        dummyMode      = cl("dummy-mode");
        preview        = cl("preview");
        context        = int(cl.getInt("context"));
        previewHideSep = ut1::hasPrefix(cl.getStr("context"), "+");

        // Derive rename/symlink/file content mode.
        modifySymlinks = cl("modify-symlinks");
        rename = cl("rename") || cl("rename-only");
        modifyFiles = (!modifySymlinks) && (!cl("rename-only"));
        if (modifySymlinks && rename)
        {
            throw Error("--modify-symlinks cannot be combined with --rename or --rename-only");
        }
        if (cl("rename") && cl("rename-only"))
        {
            throw Error("--rename cannot be combined with --rename-only");
        }

        // Implicit options.
        dummyMode |= preview;

        // Regex flags.
        regexFlags = std::regex::ECMAScript; // | std::regex::multiline;
#if 0
        regexFlags = std::regex::egrep;
        regexFlags = std::regex::extended;
        regexFlags = std::regex::basic;
        regexFlags = std::regex::grep;
        regexFlags = std::regex::awk;
#endif
        if (ignoreCase)
        {
            regexFlags |= std::regex::icase;
        }

        if (equals.empty())
        {
            throw Error("--equals must not be empty");
        }
        if (dollar.empty())
        {
            throw Error("--dollar must not be empty");
        }
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %rsi, %r12
movq %rdi, %rbx
movw $0x0, (%rdi)
xorl %eax, %eax
movb %al, 0x2(%rdi)
leaq 0x38(%rdi), %r15
leaq 0x48(%rdi), %rcx
movl %eax, 0x4(%rdi)
movl %eax, 0x7(%rdi)
movl %eax, 0xc(%rdi)
movl %eax, 0xf(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rdi)
movups %xmm0, 0x27(%rdi)
movq %rcx, 0x50(%rsp)
movq %rcx, 0x38(%rdi)
movq %rax, 0x40(%rdi)
movb %al, 0x48(%rdi)
leaq 0x58(%rdi), %rbp
leaq 0x68(%rdi), %rcx
movq %rcx, 0x48(%rsp)
movq %rcx, 0x58(%rdi)
movq %rax, 0x60(%rdi)
movb %al, 0x68(%rdi)
leaq 0xc8(%rdi), %rax
movups %xmm0, 0x78(%rdi)
movups %xmm0, 0x88(%rdi)
movups %xmm0, 0x98(%rdi)
movups %xmm0, 0xa8(%rdi)
movq %rax, 0xb8(%rdi)
movw $0x6d, %ax
movw %ax, 0xcc(%rdi)
movl $0x31305b1b, 0xc8(%rdi) # imm = 0x31305B1B
movl $0x5, %ecx
movq %rcx, 0xc0(%rdi)
leaq 0xe8(%rdi), %rdx
movq %rdx, 0xd8(%rdi)
movw %ax, 0xec(%rdi)
movl $0x37305b1b, 0xe8(%rdi) # imm = 0x37305B1B
movq %rcx, 0xe0(%rdi)
leaq 0x108(%rdi), %rdx
movq %rdx, 0xf8(%rdi)
movw %ax, 0x10c(%rdi)
movl $0x30305b1b, 0x108(%rdi) # imm = 0x30305B1B
movq %rcx, 0x100(%rdi)
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x14223(%rip), %rsi     # 0x2199f
leaq 0x14225(%rip), %rdx     # 0x219a8
leaq 0x8(%rsp), %rdi
movq %r15, 0x80(%rsp)
movq %rbp, 0x78(%rsp)
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x820a
testl %eax, %eax
setne (%rbx)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xd7c3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x141f8(%rip), %rsi     # 0x219ca
leaq 0x141fd(%rip), %rdx     # 0x219d6
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x820a
testl %eax, %eax
setne 0x1(%rbx)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xd808
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x141d7(%rip), %rsi     # 0x219ee
leaq 0x141d3(%rip), %rdx     # 0x219f1
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x820a
testl %eax, %eax
setne 0x2(%rbx)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xd84d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x141f8(%rip), %rsi     # 0x21a54
leaq 0x141fc(%rip), %rdx     # 0x21a5f
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x820a
testl %eax, %eax
setne 0x34(%rbx)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xd892
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x141cc(%rip), %rsi     # 0x21a6d
leaq 0x141cd(%rip), %rdx     # 0x21a75
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x820a
testl %eax, %eax
setne 0x35(%rbx)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xd8d7
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x14202(%rip), %rsi     # 0x21ae8
leaq 0x14206(%rip), %rdx     # 0x21af3
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x820a
testl %eax, %eax
setne 0x36(%rbx)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xd91c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x142aa(%rip), %rsi     # 0x21bd5
leaq 0x142a9(%rip), %rdx     # 0x21bdb
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x8352
movq %r15, %rdi
movq %rax, %rsi
callq 0x5220
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xd966
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x14328(%rip), %rsi     # 0x21c9d
leaq 0x14327(%rip), %rdx     # 0x21ca3
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x8352
movq %rbp, %rdi
movq %rax, %rsi
callq 0x5220
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xd9b0
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x144c1(%rip), %rsi     # 0x21e80
leaq 0x144c1(%rip), %rdx     # 0x21e87
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x820a
leaq 0x4(%rbx), %rcx
movl %eax, (%rcx)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xd9f5
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x144c3(%rip), %rsi     # 0x21ec7
leaq 0x144c6(%rip), %rdx     # 0x21ed1
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x820a
testl %eax, %eax
setne 0x8(%rbx)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xda3a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x144a7(%rip), %rsi     # 0x21ef0
leaq 0x144a7(%rip), %rdx     # 0x21ef7
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x820a
testl %eax, %eax
setne 0x9(%rbx)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xda7f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x144e6(%rip), %rsi     # 0x21f74
leaq 0x144e6(%rip), %rdx     # 0x21f7b
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x84b2
leaq 0xc(%rbx), %rcx
movl %eax, (%rcx)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xdac4
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x144a1(%rip), %rsi     # 0x21f74
leaq 0x144a1(%rip), %rdx     # 0x21f7b
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x8352
movq %rax, %r13
leaq 0x68(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x14540(%rip), %rsi     # 0x2203f
leaq 0x1453a(%rip), %rdx     # 0x22040
leaq 0x58(%rsp), %rdi
callq 0x90b2
leaq 0x58(%rsp), %rbp
movq %r13, %rdi
movq %rbp, %rsi
callq 0xa35c
movb %al, 0xa(%rbx)
movq (%rbp), %rdi
cmpq %r15, %rdi
je 0xdb39
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x5410
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xdb50
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1427f(%rip), %rsi     # 0x21dde
leaq 0x14287(%rip), %rdx     # 0x21ded
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x820a
testl %eax, %eax
setne 0x12(%rbx)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xdb95
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x14202(%rip), %rsi     # 0x21da6
leaq 0x14201(%rip), %rdx     # 0x21dac
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x820a
movl %eax, %ebp
testl %eax, %eax
je 0xdbc9
movb $0x1, 0x11(%rbx)
jmp 0xdc0e
leaq 0x58(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x144d0(%rip), %rsi     # 0x220a8
leaq 0x144d4(%rip), %rdx     # 0x220b3
callq 0x90b2
leaq 0x58(%rsp), %rsi
movq %r12, %rdi
callq 0x820a
testl %eax, %eax
setne 0x11(%rbx)
movq 0x58(%rsp), %rdi
cmpq %r15, %rdi
je 0xdc0e
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x5410
testl %ebp, %ebp
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xdc27
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
movb 0x12(%rbx), %bpl
testb %bpl, %bpl
je 0xdc36
movb $0x0, 0x10(%rbx)
jmp 0xdc7b
leaq 0x8(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x14463(%rip), %rsi     # 0x220a8
leaq 0x14467(%rip), %rdx     # 0x220b3
callq 0x90b2
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x820a
testl %eax, %eax
sete 0x10(%rbx)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xdc7b
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
testb %bpl, %bpl
cmpb $0x1, 0x12(%rbx)
jne 0xdc8e
cmpb $0x1, 0x11(%rbx)
je 0xde96
leaq 0x38(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x14108(%rip), %rsi     # 0x21da6
leaq 0x14107(%rip), %rdx     # 0x21dac
leaq 0x28(%rsp), %rdi
callq 0x90b2
leaq 0x28(%rsp), %rsi
movq %r12, %rdi
callq 0x820a
movl %eax, %ebp
testl %eax, %eax
je 0xdd01
leaq 0x98(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x143d3(%rip), %rsi     # 0x220a8
leaq 0x143d7(%rip), %rdx     # 0x220b3
leaq 0x88(%rsp), %rdi
callq 0x90b2
leaq 0x88(%rsp), %rsi
movq %r12, %rdi
callq 0x820a
testl %eax, %eax
setne %r15b
jmp 0xdd04
xorl %r15d, %r15d
testl %ebp, %ebp
je 0xdd29
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xdd29
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x5410
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0xdd40
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x5410
testb %r15b, %r15b
jne 0xdd79
movb 0x9(%rbx), %al
orb %al, 0x8(%rbx)
movzbl 0x34(%rbx), %eax
orl $0x10, %eax
movl %eax, 0x30(%rbx)
cmpq $0x0, 0x40(%rbx)
je 0xddd9
cmpq $0x0, 0x60(%rbx)
je 0xde39
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x10, %edi
callq 0x51e0
movq %rax, %r13
leaq 0x28(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x142f0(%rip), %rsi     # 0x22085
leaq 0x14317(%rip), %rdx     # 0x220b3
callq 0x90b2
movb $0x1, %bpl
leaq 0x28(%rsp), %rsi
movq %r13, %rdi
callq 0x5520
leaq 0x1fcc8(%rip), %rax     # 0x2da80
movq %rax, (%r13)
xorl %ebp, %ebp
leaq 0x1fcd3(%rip), %rsi     # 0x2da98
leaq -0x1f24(%rip), %rdx     # 0xbea8
movq %r13, %rdi
callq 0x56e0
jmp 0xdef7
movl $0x10, %edi
callq 0x51e0
movq %rax, %r13
leaq 0x28(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x142bf(%rip), %rsi     # 0x220b4
leaq 0x142d2(%rip), %rdx     # 0x220ce
callq 0x90b2
movb $0x1, %bpl
leaq 0x28(%rsp), %rsi
movq %r13, %rdi
callq 0x5520
leaq 0x1fc68(%rip), %rax     # 0x2da80
movq %rax, (%r13)
xorl %ebp, %ebp
leaq 0x1fc73(%rip), %rsi     # 0x2da98
leaq -0x1f84(%rip), %rdx     # 0xbea8
movq %r13, %rdi
callq 0x56e0
jmp 0xdef7
movl $0x10, %edi
callq 0x51e0
movq %rax, %r13
leaq 0x28(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1427a(%rip), %rsi     # 0x220cf
leaq 0x1428d(%rip), %rdx     # 0x220e9
callq 0x90b2
movb $0x1, %bpl
leaq 0x28(%rsp), %rsi
movq %r13, %rdi
callq 0x5520
leaq 0x1fc08(%rip), %rax     # 0x2da80
movq %rax, (%r13)
xorl %ebp, %ebp
leaq 0x1fc13(%rip), %rsi     # 0x2da98
leaq -0x1fe4(%rip), %rdx     # 0xbea8
movq %r13, %rdi
callq 0x56e0
jmp 0xdef7
movl $0x10, %edi
callq 0x51e0
movq %rax, %r13
leaq 0x38(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1418e(%rip), %rsi     # 0x22041
leaq 0x141ca(%rip), %rdx     # 0x22084
leaq 0x28(%rsp), %rdi
callq 0x90b2
movb $0x1, %bpl
leaq 0x28(%rsp), %rsi
movq %r13, %rdi
callq 0x5520
leaq 0x1fba5(%rip), %rax     # 0x2da80
movq %rax, (%r13)
xorl %ebp, %ebp
leaq 0x1fbb0(%rip), %rsi     # 0x2da98
leaq -0x2047(%rip), %rdx     # 0xbea8
movq %r13, %rdi
callq 0x56e0
jmp 0xdf2b
jmp 0xdf47
movq %rax, %r12
movq 0x58(%rsp), %rdi
cmpq %r15, %rdi
je 0xdfe3
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x5410
jmp 0xdfe3
jmp 0xdfe0
jmp 0xdf2b
jmp 0xdf47
jmp 0xdf2b
jmp 0xdf47
movq %rax, %r12
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0xdf4d
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x5410
jmp 0xdf4d
movq %rax, %r12
movb $0x1, %bpl
testb %bpl, %bpl
je 0xdffa
movq %r13, %rdi
callq 0x5310
jmp 0xdffa
jmp 0xdfe0
jmp 0xdfd9
movq %rax, %r12
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0xdf8e
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x5410
jmp 0xdf8e
jmp 0xdf8b
movq %rax, %r12
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0xdffa
movq 0x38(%rsp), %rsi
jmp 0xdff2
jmp 0xdfd9
jmp 0xdfe0
jmp 0xdfd9
jmp 0xdfe0
jmp 0xdfd9
jmp 0xdfe0
jmp 0xdfe0
jmp 0xdfd9
jmp 0xdfe0
jmp 0xdfd9
jmp 0xdfe0
jmp 0xdfd9
jmp 0xdfe0
jmp 0xdfd9
jmp 0xdfe0
jmp 0xdfd9
jmp 0xdfd9
jmp 0xdfd9
jmp 0xdfe0
jmp 0xdfd9
jmp 0xdfe0
jmp 0xdfd9
jmp 0xdfe0
jmp 0xdfd9
jmp 0xdfe0
jmp 0xdfd9
jmp 0xdfe0
jmp 0xdfd9
jmp 0xdfe0
movq %rax, %r12
jmp 0xdffa
jmp 0xdfe0
movq %rax, %r12
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xdffa
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5410
leaq 0xb8(%rbx), %rdi
callq 0x10654
movq 0x78(%rsp), %rax
movq (%rax), %rdi
cmpq 0x48(%rsp), %rdi
je 0xe025
movq 0x48(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x5410
addq $0x18, %rbx
movq 0x80(%rsp), %rax
movq (%rax), %rdi
cmpq 0x50(%rsp), %rdi
je 0xe04b
movq 0x50(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x5410
movq %rbx, %rdi
callq 0x106a2
movq %r12, %rdi
callq 0x5720
nop