// File: /workspace/github_cpp_makefile_star2_O3/chiku[P]cmatrix/test/doctest.h
// Function: doctest::skipPathFromFilename(char const*)
const char* skipPathFromFilename(const char* file) {
#ifndef DOCTEST_CONFIG_DISABLE
    if(getContextOptions()->no_path_in_filenames) {
        auto back    = std::strrchr(file, '\\');
        auto forward = std::strrchr(file, '/');
        if(back || forward) {
            if(back > forward)
                forward = back;
            return forward + 1;
        }
    } else {
        const auto prefixes = getContextOptions()->strip_file_prefixes;
        const char separator = DOCTEST_CONFIG_OPTIONS_FILE_PREFIX_SEPARATOR;
        String::size_type longest_match = 0U;
        for(String::size_type pos = 0U; pos < prefixes.size(); ++pos)
        {
            const auto prefix_start = pos;
            pos = std::min(prefixes.find(separator, prefix_start), prefixes.size());
            
            const auto prefix_size = pos - prefix_start;
            if(prefix_size > longest_match)
            {
                // TODO under DOCTEST_MSVC: does the comparison need strnicmp() to work with drive letter capitalization?
                if(0 == std::strncmp(prefixes.c_str() + prefix_start, file, prefix_size))
                {
                    longest_match = prefix_size;
                }
            }
        }
        return &file[longest_match];
    }
#endif // DOCTEST_CONFIG_DISABLE
    return file;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
movq 0x25f3b(%rip), %r14     # 0x4c478
cmpb $0x1, 0x7c(%r14)
jne 0x2657a
movq %rbx, %rdi
movl $0x5c, %esi
callq 0x53c0
movq %rax, %r14
movq %rbx, %rdi
movl $0x2f, %esi
callq 0x53c0
cmpq %rax, %r14
movq %rax, %rcx
cmovaq %r14, %rcx
incq %rcx
orq %rax, %r14
cmovneq %rcx, %rbx
jmp 0x2667e
cmpb $0x0, 0x97(%r14)
js 0x2659c
subq $-0x80, %r14
movq 0x10(%r14), %rax
movq %rax, 0x20(%rsp)
movups (%r14), %xmm0
movaps %xmm0, 0x10(%rsp)
jmp 0x265c3
movl 0x88(%r14), %esi
leaq 0x10(%rsp), %rdi
callq 0x25606
movq 0x80(%r14), %rsi
movl 0x88(%r14), %edx
movq %rax, %rdi
callq 0x52d0
movzbl 0x27(%rsp), %ecx
testb %cl, %cl
jns 0x265d3
movl 0x18(%rsp), %r14d
jmp 0x265e1
movl %ecx, %eax
andl $0x1f, %eax
movl $0x17, %r14d
subl %eax, %r14d
testl %r14d, %r14d
je 0x265fa
movq %rbx, 0x8(%rsp)
testb %cl, %cl
movl %ecx, 0x4(%rsp)
jns 0x265ff
movq 0x10(%rsp), %r15
jmp 0x26604
xorl %r14d, %r14d
jmp 0x26668
leaq 0x10(%rsp), %r15
movl %r14d, %r12d
addq %r15, %r12
xorl %ebp, %ebp
xorl %r13d, %r13d
movl %ebp, %eax
leaq (%r15,%rax), %rdi
movq %rax, %rbp
cmpb $0x3a, (%r15,%rbp)
je 0x26633
leaq (%r15,%rbp), %rcx
incq %rcx
incq %rbp
cmpq %r12, %rcx
jb 0x26618
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpl %ebp, %r14d
cmovbl %r14d, %ebp
movl %ebp, %ebx
subl %eax, %ebx
cmpl %r13d, %ebx
jbe 0x26655
movl %ebx, %edx
movq 0x8(%rsp), %rsi
callq 0x5160
testl %eax, %eax
cmovel %ebx, %r13d
incl %ebp
cmpl %r14d, %ebp
jb 0x2660f
movl %r13d, %r14d
movq 0x8(%rsp), %rbx
movl 0x4(%rsp), %ecx
testb %cl, %cl
jns 0x2667b
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2667b
callq 0x5450
addq %r14, %rbx
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq