// File: /workspace/github_cpp_makefile_star2_O3/VanAndelInstitute[P]intent/include/strict_fstream.hpp
// Function: strict_fstream::detail::static_method_holder::check_mode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::_Ios_Openmode)
static void check_mode(const std::string& filename, std::ios_base::openmode mode)
    {
        if ((mode & std::ios_base::trunc) && ! (mode & std::ios_base::out))
        {
            throw Exception(std::string("strict_fstream: open('") + filename + "'): mode error: trunc and not out");
        }
        else if ((mode & std::ios_base::app) && ! (mode & std::ios_base::out))
        {
            throw Exception(std::string("strict_fstream: open('") + filename + "'): mode error: app and not out");
        }
        else if ((mode & std::ios_base::trunc) && (mode & std::ios_base::app))
        {
            throw Exception(std::string("strict_fstream: open('") + filename + "'): mode error: trunc and app");
        }
     }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x60, %rsp
movq %rdi, %r14
testb $0x20, %sil
jne 0x1b5e0
andl $0x11, %esi
cmpl $0x1, %esi
jne 0x1b5f0
movl $0x28, %edi
callq 0x61f0
movq %rax, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1713a(%rip), %rsi     # 0x326c0
leaq 0x17149(%rip), %rdx     # 0x326d6
movq %rsp, %rdi
callq 0x1bde6
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
movq %r14, %rdx
callq 0x1bb58
leaq 0x1714d(%rip), %rsi     # 0x326f9
leaq 0x40(%rsp), %rdi
callq 0x66e0
leaq 0x30(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x1b6eb
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x1b6f8
testb $0x10, %sil
je 0x1b5fd
testb $0x1, %sil
jne 0x1b674
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0x28, %edi
callq 0x61f0
movq %rax, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x170a6(%rip), %rsi     # 0x326c0
leaq 0x170b5(%rip), %rdx     # 0x326d6
movq %rsp, %rdi
callq 0x1bde6
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
movq %r14, %rdx
callq 0x1bb58
leaq 0x17097(%rip), %rsi     # 0x326d7
leaq 0x40(%rsp), %rdi
callq 0x66e0
leaq 0x30(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x1b73c
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x1b749
movl $0x28, %edi
callq 0x61f0
movq %rax, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1702f(%rip), %rsi     # 0x326c0
leaq 0x1703e(%rip), %rdx     # 0x326d6
movq %rsp, %rdi
callq 0x1bde6
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
movq %r14, %rdx
callq 0x1bb58
leaq 0x17062(%rip), %rsi     # 0x32719
leaq 0x40(%rsp), %rdi
callq 0x66e0
leaq 0x30(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x1b78a
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x1b797
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
movq 0x8(%rax), %rdx
leaq 0x20(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %rbx, %rdi
callq 0x1bbb2
xorl %ebp, %ebp
leaq 0x242c8(%rip), %rsi     # 0x3f9f0
leaq 0x4cd(%rip), %rdx       # 0x1bbfc
movq %rbx, %rdi
callq 0x6640
jmp 0x1b7d6
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
movq 0x8(%rax), %rdx
leaq 0x20(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %rbx, %rdi
callq 0x1bbb2
xorl %ebp, %ebp
leaq 0x24277(%rip), %rsi     # 0x3f9f0
leaq 0x47c(%rip), %rdx       # 0x1bbfc
movq %rbx, %rdi
callq 0x6640
jmp 0x1b7d6
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
movq 0x8(%rax), %rdx
leaq 0x20(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %rbx, %rdi
callq 0x1bbb2
xorl %ebp, %ebp
leaq 0x24229(%rip), %rsi     # 0x3f9f0
leaq 0x42e(%rip), %rdx       # 0x1bbfc
movq %rbx, %rdi
callq 0x6640
jmp 0x1b7dc
jmp 0x1b7fa
jmp 0x1b7dc
movq %rax, %r14
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0x1b800
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x63c0
jmp 0x1b800
jmp 0x1b7fa
movq %rax, %r14
movb $0x1, %bpl
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1b81b
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x63c0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1b831
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x63c0
testb %bpl, %bpl
jne 0x1b85e
jmp 0x1b866
jmp 0x1b83c
jmp 0x1b83c
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1b85e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x63c0
jmp 0x1b85e
jmp 0x1b85b
jmp 0x1b85b
movq %rax, %r14
movq %rbx, %rdi
callq 0x62e0
movq %r14, %rdi
callq 0x6660