// File: 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
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl -0xc(%rbp), %edi
movl $0x20, %esi
callq 0x38830
cmpl $0x0, %eax
je 0x382a2
movl -0xc(%rbp), %edi
movl $0x10, %esi
callq 0x38830
cmpl $0x0, %eax
jne 0x382a2
movb $0x1, -0x85(%rbp)
movl $0x28, %edi
callq 0x82f0
movq %rax, -0x168(%rbp)
leaq -0x71(%rbp), %rdi
movq %rdi, -0x160(%rbp)
callq 0x8980
movq -0x160(%rbp), %rdx
leaq 0x375ac(%rip), %rsi     # 0x6f760
leaq -0x70(%rbp), %rdi
callq 0x35e90
jmp 0x381bf
movq -0x8(%rbp), %rdx
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x38850
jmp 0x381d2
leaq 0x3759e(%rip), %rdx     # 0x6f777
leaq -0x30(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x37c20
jmp 0x381e8
movq -0x168(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x388a0
jmp 0x381fa
movq -0x168(%rbp), %rdi
movb $0x0, -0x85(%rbp)
leaq 0x557a1(%rip), %rsi     # 0x8d9b0
leaq 0x6ea(%rip), %rdx       # 0x38900
callq 0x8920
jmp 0x38597
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x3827d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x38274
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x3826b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x8a98
leaq -0x50(%rbp), %rdi
callq 0x8a98
leaq -0x70(%rbp), %rdi
callq 0x8a98
leaq -0x71(%rbp), %rdi
callq 0x85e0
testb $0x1, -0x85(%rbp)
jne 0x38291
jmp 0x3829d
movq -0x168(%rbp), %rdi
callq 0x8440
jmp 0x3858e
movl -0xc(%rbp), %edi
movl $0x1, %esi
callq 0x38830
cmpl $0x0, %eax
je 0x38413
movl -0xc(%rbp), %edi
movl $0x10, %esi
callq 0x38830
cmpl $0x0, %eax
jne 0x38413
movb $0x1, -0xea(%rbp)
movl $0x28, %edi
callq 0x82f0
movq %rax, -0x178(%rbp)
leaq -0xe9(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x8980
movq -0x170(%rbp), %rdx
leaq 0x37459(%rip), %rsi     # 0x6f760
leaq -0xe8(%rbp), %rdi
callq 0x35e90
jmp 0x38315
movq -0x8(%rbp), %rdx
leaq -0xc8(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x38850
jmp 0x3832e
leaq 0x37464(%rip), %rdx     # 0x6f799
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x37c20
jmp 0x3834a
movq -0x178(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x388a0
jmp 0x3835f
movq -0x178(%rbp), %rdi
movb $0x0, -0xea(%rbp)
leaq 0x5563c(%rip), %rsi     # 0x8d9b0
leaq 0x585(%rip), %rdx       # 0x38900
callq 0x8920
jmp 0x38597
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x383eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x383df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x383d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x8a98
leaq -0xc8(%rbp), %rdi
callq 0x8a98
leaq -0xe8(%rbp), %rdi
callq 0x8a98
leaq -0xe9(%rbp), %rdi
callq 0x85e0
testb $0x1, -0xea(%rbp)
jne 0x38402
jmp 0x3840e
movq -0x178(%rbp), %rdi
callq 0x8440
jmp 0x3858e
movl -0xc(%rbp), %edi
movl $0x20, %esi
callq 0x38830
cmpl $0x0, %eax
je 0x38581
movl -0xc(%rbp), %edi
movl $0x1, %esi
callq 0x38830
cmpl $0x0, %eax
je 0x38581
movb $0x1, -0x152(%rbp)
movl $0x28, %edi
callq 0x82f0
movq %rax, -0x188(%rbp)
leaq -0x151(%rbp), %rdi
movq %rdi, -0x180(%rbp)
callq 0x8980
movq -0x180(%rbp), %rdx
leaq 0x372e8(%rip), %rsi     # 0x6f760
leaq -0x150(%rbp), %rdi
callq 0x35e90
jmp 0x38486
movq -0x8(%rbp), %rdx
leaq -0x130(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x38850
jmp 0x3849f
leaq 0x37313(%rip), %rdx     # 0x6f7b9
leaq -0x110(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x37c20
jmp 0x384bb
movq -0x188(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x388a0
jmp 0x384d0
movq -0x188(%rbp), %rdi
movb $0x0, -0x152(%rbp)
leaq 0x554cb(%rip), %rsi     # 0x8d9b0
leaq 0x414(%rip), %rdx       # 0x38900
callq 0x8920
jmp 0x38597
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x3855c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x38550
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x38544
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x8a98
leaq -0x130(%rbp), %rdi
callq 0x8a98
leaq -0x150(%rbp), %rdi
callq 0x8a98
leaq -0x151(%rbp), %rdi
callq 0x85e0
testb $0x1, -0x152(%rbp)
jne 0x38573
jmp 0x3857f
movq -0x188(%rbp), %rdi
callq 0x8440
jmp 0x3858e
jmp 0x38583
jmp 0x38585
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
movq -0x80(%rbp), %rdi
callq 0x8970
nopw (%rax,%rax)