// File: mahdibohloul[P]SnapTrip/./Business-Logic/Backend.cpp
// Function: Backend::fill_reserve_info(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>>>> const&)
Database::User::ReserveInfo Backend::fill_reserve_info(const data_t& data)
{
    Database::User::ReserveInfo reserve_info = Database::User::ReserveInfo();
    string hotel_id, quantity, type, check_in, check_out;
    hotel_id = find_info(ConstNames::Hotel, data);
    type = find_info(ConstNames::Type, data);
    quantity = find_info(ConstNames::Quantity, data);
    check_in = find_info(ConstNames::Check_In, data);
    check_out = find_info(ConstNames::Check_Out, data);
    if(hotel_id != ConstNames::Empty_Str && valid_advanced_filter(type, quantity, check_in, check_out))
    {
        reserve_info.hotel_id = hotel_id;
        reserve_info.check_in = stoi(check_in);
        reserve_info.check_out = stoi(check_out);
        reserve_info.quantity = stoi(quantity);
        reserve_info.type = reserve_info.m_room_type[type];
        return reserve_info;
    }
    throw Exception(ConstNames::Bad_Request_msg);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x290, %rsp            # imm = 0x290
movq %rdi, -0x250(%rbp)
movq %rdi, %rax
movq %rax, -0x248(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x240(%rbp)
movb $0x0, -0x19(%rbp)
callq 0x65ff0
leaq -0x40(%rbp), %rdi
callq 0x65d0
leaq -0x60(%rbp), %rdi
callq 0x65d0
leaq -0x80(%rbp), %rdi
callq 0x65d0
leaq -0xa0(%rbp), %rdi
callq 0x65d0
leaq -0xc0(%rbp), %rdi
callq 0x65d0
movq -0x240(%rbp), %rsi
movq -0x18(%rbp), %rcx
leaq 0x9c82f(%rip), %rdx     # 0x117a60
leaq -0xe0(%rbp), %rdi
callq 0x7bad0
jmp 0x7b23f
leaq -0x40(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
movq %rsi, -0x258(%rbp)
callq 0x6530
movq -0x258(%rbp), %rdi
callq 0x6828
movq -0x240(%rbp), %rsi
movq -0x18(%rbp), %rcx
leaq 0x9c74c(%rip), %rdx     # 0x1179c0
leaq -0x110(%rbp), %rdi
callq 0x7bad0
jmp 0x7b282
leaq -0x80(%rbp), %rdi
leaq -0x110(%rbp), %rsi
movq %rsi, -0x260(%rbp)
callq 0x6530
movq -0x260(%rbp), %rdi
callq 0x6828
movq -0x240(%rbp), %rsi
movq -0x18(%rbp), %rcx
leaq 0x9c729(%rip), %rdx     # 0x1179e0
leaq -0x130(%rbp), %rdi
callq 0x7bad0
jmp 0x7b2c5
leaq -0x60(%rbp), %rdi
leaq -0x130(%rbp), %rsi
movq %rsi, -0x268(%rbp)
callq 0x6530
movq -0x268(%rbp), %rdi
callq 0x6828
movq -0x240(%rbp), %rsi
movq -0x18(%rbp), %rcx
leaq 0x9c706(%rip), %rdx     # 0x117a00
leaq -0x150(%rbp), %rdi
callq 0x7bad0
jmp 0x7b308
leaq -0xa0(%rbp), %rdi
leaq -0x150(%rbp), %rsi
movq %rsi, -0x270(%rbp)
callq 0x6530
movq -0x270(%rbp), %rdi
callq 0x6828
movq -0x240(%rbp), %rsi
movq -0x18(%rbp), %rcx
leaq 0x9c6e0(%rip), %rdx     # 0x117a20
leaq -0x170(%rbp), %rdi
callq 0x7bad0
jmp 0x7b34e
leaq -0xc0(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x6530
leaq -0x170(%rbp), %rdi
callq 0x6828
leaq -0x40(%rbp), %rdi
leaq 0x9be28(%rip), %rsi     # 0x1171a0
callq 0x54fc0
movb %al, %cl
movb $0x0, -0x191(%rbp)
movb $0x0, -0x1b9(%rbp)
movb $0x0, -0x1e1(%rbp)
movb $0x0, -0x209(%rbp)
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x271(%rbp)
jne 0x7b3ad
jmp 0x7b455
leaq -0x190(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x61d0
jmp 0x7b3bf
movb $0x1, -0x191(%rbp)
leaq -0x1b8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x61d0
jmp 0x7b3d8
movb $0x1, -0x1b9(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x61d0
jmp 0x7b3f4
movb $0x1, -0x1e1(%rbp)
leaq -0x208(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x61d0
jmp 0x7b410
movq -0x240(%rbp), %rdi
movb $0x1, -0x209(%rbp)
leaq -0x190(%rbp), %rsi
leaq -0x1b8(%rbp), %rdx
leaq -0x1e0(%rbp), %rcx
leaq -0x208(%rbp), %r8
callq 0x7fb60
movb %al, -0x272(%rbp)
jmp 0x7b447
movb -0x272(%rbp), %al
movb %al, -0x271(%rbp)
jmp 0x7b455
movb -0x271(%rbp), %al
movb %al, -0x273(%rbp)
testb $0x1, -0x209(%rbp)
jne 0x7b46c
jmp 0x7b478
leaq -0x208(%rbp), %rdi
callq 0x6828
testb $0x1, -0x1e1(%rbp)
jne 0x7b483
jmp 0x7b48f
leaq -0x1e0(%rbp), %rdi
callq 0x6828
testb $0x1, -0x1b9(%rbp)
jne 0x7b49a
jmp 0x7b4a6
leaq -0x1b8(%rbp), %rdi
callq 0x6828
testb $0x1, -0x191(%rbp)
jne 0x7b4b1
jmp 0x7b4bd
leaq -0x190(%rbp), %rdi
callq 0x6828
movb -0x273(%rbp), %al
testb $0x1, %al
jne 0x7b4cc
jmp 0x7b6a0
movq -0x250(%rbp), %rdi
addq $0x30, %rdi
leaq -0x40(%rbp), %rsi
callq 0x6060
jmp 0x7b4e2
xorl %eax, %eax
movl %eax, %esi
leaq -0xa0(%rbp), %rdi
movl $0xa, %edx
callq 0x74d10
movl %eax, -0x278(%rbp)
jmp 0x7b4ff
movq -0x250(%rbp), %rax
movl -0x278(%rbp), %ecx
movl %ecx, 0x58(%rax)
xorl %eax, %eax
movl %eax, %esi
leaq -0xc0(%rbp), %rdi
movl $0xa, %edx
callq 0x74d10
movl %eax, -0x27c(%rbp)
jmp 0x7b52c
movq -0x250(%rbp), %rax
movl -0x27c(%rbp), %ecx
movl %ecx, 0x5c(%rax)
xorl %eax, %eax
movl %eax, %esi
leaq -0x60(%rbp), %rdi
movl $0xa, %edx
callq 0x74d10
movl %eax, -0x280(%rbp)
jmp 0x7b556
movq -0x250(%rbp), %rdi
movl -0x280(%rbp), %eax
movl %eax, 0x54(%rdi)
leaq -0x80(%rbp), %rsi
callq 0x80dc0
movq %rax, -0x288(%rbp)
jmp 0x7b578
movq -0x250(%rbp), %rax
movq -0x288(%rbp), %rcx
movl (%rcx), %ecx
movl %ecx, 0x50(%rax)
movb $0x1, -0x19(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x6828
leaq -0xa0(%rbp), %rdi
callq 0x6828
leaq -0x80(%rbp), %rdi
callq 0x6828
leaq -0x60(%rbp), %rdi
callq 0x6828
leaq -0x40(%rbp), %rdi
callq 0x6828
testb $0x1, -0x19(%rbp)
jne 0x7b7a0
jmp 0x7b794
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x7b753
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x7b684
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x7b66b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x7b652
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
testb $0x1, -0x209(%rbp)
jne 0x7b644
jmp 0x7b650
leaq -0x208(%rbp), %rdi
callq 0x6828
jmp 0x7b652
testb $0x1, -0x1e1(%rbp)
jne 0x7b65d
jmp 0x7b669
leaq -0x1e0(%rbp), %rdi
callq 0x6828
jmp 0x7b66b
testb $0x1, -0x1b9(%rbp)
jne 0x7b676
jmp 0x7b682
leaq -0x1b8(%rbp), %rdi
callq 0x6828
jmp 0x7b684
testb $0x1, -0x191(%rbp)
jne 0x7b68f
jmp 0x7b69b
leaq -0x190(%rbp), %rdi
callq 0x6828
jmp 0x7b753
movb $0x1, -0x231(%rbp)
movl $0x28, %edi
callq 0x6210
movq %rax, -0x290(%rbp)
leaq 0x9bcc1(%rip), %rsi     # 0x117380
leaq -0x230(%rbp), %rdi
callq 0x61d0
jmp 0x7b6cd
movq -0x290(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0xabc90
jmp 0x7b6e2
movq -0x290(%rbp), %rdi
movb $0x0, -0x231(%rbp)
leaq 0x8c571(%rip), %rsi     # 0x107c68
leaq 0x30602(%rip), %rdx     # 0xabd00
callq 0x6710
jmp 0x7b7bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x7b73a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x6828
testb $0x1, -0x231(%rbp)
jne 0x7b745
jmp 0x7b751
movq -0x290(%rbp), %rdi
callq 0x6360
jmp 0x7b753
leaq -0xc0(%rbp), %rdi
callq 0x6828
leaq -0xa0(%rbp), %rdi
callq 0x6828
leaq -0x80(%rbp), %rdi
callq 0x6828
leaq -0x60(%rbp), %rdi
callq 0x6828
leaq -0x40(%rbp), %rdi
callq 0x6828
movq -0x250(%rbp), %rdi
callq 0x80b60
jmp 0x7b7b0
movq -0x250(%rbp), %rdi
callq 0x80b60
movq -0x248(%rbp), %rax
addq $0x290, %rsp            # imm = 0x290
popq %rbp
retq
movq -0xe8(%rbp), %rdi
callq 0x6750
nopl (%rax)