// File: /workspace/github_cpp_makefile_star2_O1/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 0x27001(%rip), %r14     # 0x4e478
cmpb $0x1, 0x7c(%r14)
jne 0x274b4
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 0x275b7
cmpb $0x0, 0x97(%r14)
js 0x274d6
subq $-0x80, %r14
movq 0x10(%r14), %rax
movq %rax, 0x20(%rsp)
movups (%r14), %xmm0
movaps %xmm0, 0x10(%rsp)
jmp 0x274fd
movl 0x88(%r14), %esi
leaq 0x10(%rsp), %rdi
callq 0x2653a
movq 0x80(%r14), %rsi
movl 0x88(%r14), %edx
movq %rax, %rdi
callq 0x52d0
movzbl 0x27(%rsp), %ecx
testb %cl, %cl
jns 0x2750d
movl 0x18(%rsp), %r14d
jmp 0x2751b
movl %ecx, %eax
andl $0x1f, %eax
movl $0x17, %r14d
subl %eax, %r14d
testl %r14d, %r14d
je 0x27534
movq %rbx, 0x8(%rsp)
testb %cl, %cl
movl %ecx, 0x4(%rsp)
jns 0x27539
movq 0x10(%rsp), %r15
jmp 0x2753e
xorl %r14d, %r14d
jmp 0x275a1
leaq 0x10(%rsp), %r15
movl %r14d, %r12d
addq %r15, %r12
xorl %ebp, %ebp
xorl %r13d, %r13d
movl %ebp, %edi
movq %rdi, %rbp
cmpb $0x3a, (%r15,%rbp)
je 0x27569
leaq (%r15,%rbp), %rax
incq %rax
incq %rbp
cmpq %r12, %rax
jb 0x2754e
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpl %ebp, %r14d
cmovbl %r14d, %ebp
movl %ebp, %ebx
subl %edi, %ebx
cmpl %r13d, %ebx
jbe 0x2758e
addq %r15, %rdi
movl %ebx, %edx
movq 0x8(%rsp), %rsi
callq 0x5160
testl %eax, %eax
cmovel %ebx, %r13d
incl %ebp
cmpl %r14d, %ebp
jb 0x27549
movl %r13d, %r14d
movq 0x8(%rsp), %rbx
movl 0x4(%rsp), %ecx
testb %cl, %cl
jns 0x275b4
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x275b4
callq 0x5450
addq %r14, %rbx
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq