// File: mahdibohloul[P]SnapTrip/./Business-Logic/Backend.cpp
// Function: Backend::check_access(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void Backend::check_access(const string& mode)
{
    if(mode == ConstNames::Online_Mode)
    {
        if(request_from_online_user() != ConstNames::Exist)
            throw Exception(ConstNames::Permission_Denied_msg);
    }
    else
    {
        if(request_from_online_user() == ConstNames::Exist)
            throw Exception(ConstNames::Permission_Denied_msg);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x250, %rsp            # imm = 0x250
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x200(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x9e997(%rip), %rsi     # 0x117c00
callq 0x55080
testb $0x1, %al
jne 0x79277
jmp 0x794b1
leaq -0xa1(%rbp), %rdi
movq %rdi, -0x208(%rbp)
callq 0x6760
movq -0x208(%rbp), %rdx
leaq 0x3c420(%rip), %rsi     # 0xb56b8
leaq -0xa0(%rbp), %rdi
callq 0x65c0
jmp 0x792a6
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x210(%rbp)
callq 0x6760
movq -0x210(%rbp), %rdx
leaq 0x3c3f1(%rip), %rsi     # 0xb56b8
leaq -0xd8(%rbp), %rdi
callq 0x65c0
jmp 0x792d5
movq %rsp, %rax
fldz
fstpt (%rax)
xorl %eax, %eax
movl %eax, %ecx
leaq -0x80(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0xd8(%rbp), %rdx
callq 0x80c00
jmp 0x792f9
movq -0x200(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x7f5e0
movb %al, -0x211(%rbp)
jmp 0x79311
movb -0x211(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x218(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x54e70
leaq -0xd8(%rbp), %rdi
callq 0x6828
leaq -0xd9(%rbp), %rdi
callq 0x64b0
leaq -0xa0(%rbp), %rdi
callq 0x6828
leaq -0xa1(%rbp), %rdi
callq 0x64b0
movl -0x218(%rbp), %eax
cmpl $0x1, %eax
je 0x794ac
movb $0x1, -0x101(%rbp)
movl $0x28, %edi
callq 0x6210
movq %rax, -0x220(%rbp)
leaq 0x9e037(%rip), %rsi     # 0x1173c0
leaq -0x100(%rbp), %rdi
callq 0x61d0
jmp 0x79397
movq -0x220(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0xabc90
jmp 0x793ac
movq -0x220(%rbp), %rdi
movb $0x0, -0x101(%rbp)
leaq 0x8e8a7(%rip), %rsi     # 0x107c68
leaq 0x32938(%rip), %rdx     # 0xabd00
callq 0x6710
jmp 0x79703
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x7944d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x79435
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x79429
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x54e70
leaq -0xd8(%rbp), %rdi
callq 0x6828
leaq -0xd9(%rbp), %rdi
callq 0x64b0
leaq -0xa0(%rbp), %rdi
callq 0x6828
leaq -0xa1(%rbp), %rdi
callq 0x64b0
jmp 0x796f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x79490
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x6828
testb $0x1, -0x101(%rbp)
jne 0x7949b
jmp 0x794a7
movq -0x220(%rbp), %rdi
callq 0x6360
jmp 0x796f7
jmp 0x796ee
leaq -0x1a1(%rbp), %rdi
movq %rdi, -0x228(%rbp)
callq 0x6760
movq -0x228(%rbp), %rdx
leaq 0x3c1e6(%rip), %rsi     # 0xb56b8
leaq -0x1a0(%rbp), %rdi
callq 0x65c0
jmp 0x794e0
leaq -0x1c9(%rbp), %rdi
movq %rdi, -0x230(%rbp)
callq 0x6760
movq -0x230(%rbp), %rdx
leaq 0x3c1b7(%rip), %rsi     # 0xb56b8
leaq -0x1c8(%rbp), %rdi
callq 0x65c0
jmp 0x7950f
movq %rsp, %rax
fldz
fstpt (%rax)
xorl %eax, %eax
movl %eax, %ecx
leaq -0x180(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
leaq -0x1c8(%rbp), %rdx
callq 0x80c00
jmp 0x79536
movq -0x200(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x7f5e0
movb %al, -0x231(%rbp)
jmp 0x79551
movb -0x231(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x238(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x54e70
leaq -0x1c8(%rbp), %rdi
callq 0x6828
leaq -0x1c9(%rbp), %rdi
callq 0x64b0
leaq -0x1a0(%rbp), %rdi
callq 0x6828
leaq -0x1a1(%rbp), %rdi
callq 0x64b0
movl -0x238(%rbp), %eax
cmpl $0x1, %eax
jne 0x796ec
movb $0x1, -0x1f1(%rbp)
movl $0x28, %edi
callq 0x6210
movq %rax, -0x240(%rbp)
leaq 0x9ddf4(%rip), %rsi     # 0x1173c0
leaq -0x1f0(%rbp), %rdi
callq 0x61d0
jmp 0x795da
movq -0x240(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0xabc90
jmp 0x795ef
movq -0x240(%rbp), %rdi
movb $0x0, -0x1f1(%rbp)
leaq 0x8e664(%rip), %rsi     # 0x107c68
leaq 0x326f5(%rip), %rdx     # 0xabd00
callq 0x6710
jmp 0x79703
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x79693
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x7967b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x7966f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x54e70
leaq -0x1c8(%rbp), %rdi
callq 0x6828
leaq -0x1c9(%rbp), %rdi
callq 0x64b0
leaq -0x1a0(%rbp), %rdi
callq 0x6828
leaq -0x1a1(%rbp), %rdi
callq 0x64b0
jmp 0x796f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x796d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x6828
testb $0x1, -0x1f1(%rbp)
jne 0x796de
jmp 0x796ea
movq -0x240(%rbp), %rdi
callq 0x6360
jmp 0x796f7
jmp 0x796ee
addq $0x250, %rsp            # imm = 0x250
popq %rbp
retq
movq -0xb0(%rbp), %rdi
callq 0x6750
nopw %cs:(%rax,%rax)