// File: mahdibohloul[P]SnapTrip/./Business-Logic/Backend.cpp
// Function: Backend::post_request(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>)
void Backend::post_request(data_t data)
{
    if(!data.empty())
    {
        auto command_itr = data.begin();
        if(in_the_command(*command_itr, POST) != IN)
            throw Exception(ConstNames::Not_Found_msg);
        request_method method = func_post_map[*command_itr];
        data.erase(command_itr);
        (this->*method)(data);
    }
    else
        throw Exception(ConstNames::Bad_Request_msg);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rsi, -0xc0(%rbp)
movq %rdi, %rax
movq -0xc0(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xb0(%rbp)
callq 0x80940
testb $0x1, %al
jne 0x7879a
movq -0xb8(%rbp), %rdi
callq 0x80980
movq %rax, -0x18(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x809b0
movq -0xb0(%rbp), %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x78850
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
je 0x78673
movb $0x1, -0x45(%rbp)
movl $0x28, %edi
callq 0x6210
movq %rax, -0xc8(%rbp)
leaq 0x9eda9(%rip), %rsi     # 0x1173a0
leaq -0x38(%rbp), %rdi
callq 0x61d0
jmp 0x78602
movq -0xc8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xabc90
jmp 0x78614
movq -0xc8(%rbp), %rdi
movb $0x0, -0x45(%rbp)
leaq 0x8f642(%rip), %rsi     # 0x107c68
leaq 0x336d3(%rip), %rdx     # 0xabd00
callq 0x6710
jmp 0x78850
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x7865a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x6828
testb $0x1, -0x45(%rbp)
jne 0x78662
jmp 0x7866e
movq -0xc8(%rbp), %rdi
callq 0x6360
jmp 0x78847
movq -0xb0(%rbp), %rax
addq $0x50, %rax
movq %rax, -0xe8(%rbp)
leaq -0x18(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0x809b0
movq -0xe8(%rbp), %rdi
movq %rax, %rsi
callq 0x809d0
movq -0xe0(%rbp), %rsi
movq %rax, %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rcx
movq %rcx, -0x50(%rbp)
movq %rax, -0x58(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x80b20
movq -0xb8(%rbp), %rdi
movq -0x60(%rbp), %rsi
callq 0x80ab0
movq -0xb0(%rbp), %rcx
movq %rax, -0x68(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0x50(%rbp), %rdx
addq %rdx, %rcx
movq %rcx, -0xd0(%rbp)
andq $0x1, %rax
cmpq $0x0, %rax
je 0x78726
movq -0xd8(%rbp), %rcx
movq -0xd0(%rbp), %rax
movq (%rax), %rax
subq $0x1, %rcx
movq (%rax,%rcx), %rax
movq %rax, -0xf0(%rbp)
jmp 0x78734
movq -0xd8(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0xb8(%rbp), %rsi
movq -0xf0(%rbp), %rax
movq %rax, -0xf8(%rbp)
leaq -0x80(%rbp), %rdi
movq %rdi, -0x100(%rbp)
callq 0x72990
movq -0xd0(%rbp), %rdi
movq -0x100(%rbp), %rsi
movq -0xf8(%rbp), %rax
callq *%rax
jmp 0x78772
leaq -0x80(%rbp), %rdi
callq 0x72a80
jmp 0x7883e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x72a80
jmp 0x78847
movb $0x1, -0xa1(%rbp)
movl $0x28, %edi
callq 0x6210
movq %rax, -0x108(%rbp)
leaq 0x9ebc7(%rip), %rsi     # 0x117380
leaq -0xa0(%rbp), %rdi
callq 0x61d0
jmp 0x787c7
movq -0x108(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0xabc90
jmp 0x787dc
movq -0x108(%rbp), %rdi
movb $0x0, -0xa1(%rbp)
leaq 0x8f477(%rip), %rsi     # 0x107c68
leaq 0x33508(%rip), %rdx     # 0xabd00
callq 0x6710
jmp 0x78850
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x78825
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x6828
testb $0x1, -0xa1(%rbp)
jne 0x78830
jmp 0x7883c
movq -0x108(%rbp), %rdi
callq 0x6360
jmp 0x78847
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x6750