// File: /workspace/github_cpp_makefile_star2_O1/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
movl %esi, %eax
andl $0x30, %eax
cmpl $0x20, %eax
je 0x1b620
movl %esi, %eax
andl $0x11, %eax
cmpl $0x1, %eax
je 0x1b69b
notl %esi
testb $0x21, %sil
je 0x1b716
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0x28, %edi
callq 0x61f0
movq %rax, %rbx
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x16083(%rip), %rsi     # 0x316c0
leaq 0x16092(%rip), %rdx     # 0x316d6
leaq 0x20(%rsp), %rdi
callq 0x1be64
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
movq %r14, %rdx
callq 0x1bbd5
leaq 0x16070(%rip), %rsi     # 0x316d7
leaq 0x40(%rsp), %rdi
callq 0x66e0
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x1b791
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x1b79d
movl $0x28, %edi
callq 0x61f0
movq %rax, %rbx
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x16008(%rip), %rsi     # 0x316c0
leaq 0x16017(%rip), %rdx     # 0x316d6
leaq 0x20(%rsp), %rdi
callq 0x1be64
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
movq %r14, %rdx
callq 0x1bbd5
leaq 0x16017(%rip), %rsi     # 0x316f9
leaq 0x40(%rsp), %rdi
callq 0x66e0
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x1b7df
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x1b7eb
movl $0x28, %edi
callq 0x61f0
movq %rax, %rbx
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x15f8d(%rip), %rsi     # 0x316c0
leaq 0x15f9c(%rip), %rdx     # 0x316d6
leaq 0x20(%rsp), %rdi
callq 0x1be64
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
movq %r14, %rdx
callq 0x1bbd5
leaq 0x15fbc(%rip), %rsi     # 0x31719
leaq 0x40(%rsp), %rdi
callq 0x66e0
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x1b82a
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x1b836
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
movq 0x8(%rax), %rdx
movq %rsp, %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %rbx, %rdi
callq 0x1bc30
xorl %ebp, %ebp
leaq 0x231e5(%rip), %rsi     # 0x3e9b0
leaq 0x4a8(%rip), %rdx       # 0x1bc7a
movq %rbx, %rdi
callq 0x6640
jmp 0x1b873
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
movq 0x8(%rax), %rdx
movq %rsp, %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %rbx, %rdi
callq 0x1bc30
xorl %ebp, %ebp
leaq 0x23197(%rip), %rsi     # 0x3e9b0
leaq 0x45a(%rip), %rdx       # 0x1bc7a
movq %rbx, %rdi
callq 0x6640
jmp 0x1b873
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
movq 0x8(%rax), %rdx
movq %rsp, %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %rbx, %rdi
callq 0x1bc30
xorl %ebp, %ebp
leaq 0x2314c(%rip), %rsi     # 0x3e9b0
leaq 0x40f(%rip), %rdx       # 0x1bc7a
movq %rbx, %rdi
callq 0x6640
jmp 0x1b87b
jmp 0x1b896
jmp 0x1b87b
jmp 0x1b896
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1b89c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x63c0
jmp 0x1b89c
movq %rax, %r14
movb $0x1, %bpl
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1b8c3
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x63c0
jmp 0x1b8c3
jmp 0x1b8bd
jmp 0x1b8bd
movq %rax, %r14
movb $0x1, %bpl
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x1b8e6
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x63c0
jmp 0x1b8e6
jmp 0x1b8e0
jmp 0x1b8e0
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x1b8f3
movq %rbx, %rdi
callq 0x62e0
movq %r14, %rdi
callq 0x6660
nop