// File: mahdibohloul[P]SnapTrip/./ORM/ObjectRelational.cpp
// Function: ObjectRelational::database_setup(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 ObjectRelational::database_setup(Backend::data_t data)
{
    info_t property_amenities = data[e_property_amenities];
    coordinate_t latitude = stold(data[e_latitude]);
    coordinate_t longitude = stold(data[e_longitude]);
    num_t no_standard_rooms = stoi(data[e_no_s_rooms]);
    num_t no_deluxe_rooms = stoi(data[e_no_d_rooms]);
    num_t no_luxury_rooms = stoi(data[e_no_l_rooms]);
    num_t no_premium_rooms = stoi(data[e_no_p_rooms]);
    price_t standard_room_price = stoi(data[e_s_price]);
    price_t deluxe_room_price = stoi(data[e_d_price]);
    price_t luxury_room_price = stoi(data[e_l_price]);
    price_t premium_room_price = stoi(data[e_p_price]);
    num_t hotel_star_rating = stoi(data[e_star_rating]);

    Database::HotelInfo hotel_info = Database::HotelInfo(data[e_id], data[e_name], hotel_star_rating, data[e_overview], property_amenities, data[e_city], latitude, longitude, data[e_img_url],
                                                        no_standard_rooms, no_deluxe_rooms, no_luxury_rooms, no_premium_rooms,
                                                        standard_room_price, deluxe_room_price, luxury_room_price, premium_room_price);
    database->hotel_setup(hotel_info);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3f0, %rsp            # imm = 0x3F0
movq %rsi, -0x2f8(%rbp)
movq %rdi, %rax
movq -0x2f8(%rbp), %rdi
movq %rdi, -0x2e8(%rbp)
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x2f0(%rbp)
movl $0x4, %esi
callq 0x74cb0
movq %rax, %rsi
leaq -0x30(%rbp), %rdi
callq 0x61d0
movq -0x2e8(%rbp), %rdi
movl $0x6, %esi
callq 0x74cb0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x74cd0
fstpt -0x2dc(%rbp)
jmp 0x73431
movq -0x2e8(%rbp), %rdi
fldt -0x2dc(%rbp)
fstpt -0x40(%rbp)
movl $0x7, %esi
callq 0x74cb0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x74cd0
fstpt -0x304(%rbp)
jmp 0x7345f
movq -0x2e8(%rbp), %rdi
fldt -0x304(%rbp)
fstpt -0x60(%rbp)
movl $0x9, %esi
callq 0x74cb0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x74d10
movl %eax, -0x308(%rbp)
jmp 0x73492
movq -0x2e8(%rbp), %rdi
movl -0x308(%rbp), %eax
movl %eax, -0x64(%rbp)
movl $0xa, %esi
callq 0x74cb0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x74d10
movl %eax, -0x30c(%rbp)
jmp 0x734c5
movq -0x2e8(%rbp), %rdi
movl -0x30c(%rbp), %eax
movl %eax, -0x68(%rbp)
movl $0xb, %esi
callq 0x74cb0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x74d10
movl %eax, -0x310(%rbp)
jmp 0x734f8
movq -0x2e8(%rbp), %rdi
movl -0x310(%rbp), %eax
movl %eax, -0x6c(%rbp)
movl $0xc, %esi
callq 0x74cb0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x74d10
movl %eax, -0x314(%rbp)
jmp 0x7352b
movq -0x2e8(%rbp), %rdi
movl -0x314(%rbp), %eax
movl %eax, -0x70(%rbp)
movl $0xd, %esi
callq 0x74cb0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x74d10
movl %eax, -0x318(%rbp)
jmp 0x7355e
movq -0x2e8(%rbp), %rdi
movl -0x318(%rbp), %eax
movl %eax, -0x2c4(%rbp)
fildl -0x2c4(%rbp)
fstpt -0x80(%rbp)
movl $0xe, %esi
callq 0x74cb0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x74d10
movl %eax, -0x31c(%rbp)
jmp 0x7359d
movq -0x2e8(%rbp), %rdi
movl -0x31c(%rbp), %eax
movl %eax, -0x2c8(%rbp)
fildl -0x2c8(%rbp)
fstpt -0x90(%rbp)
movl $0xf, %esi
callq 0x74cb0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x74d10
movl %eax, -0x320(%rbp)
jmp 0x735df
movq -0x2e8(%rbp), %rdi
movl -0x320(%rbp), %eax
movl %eax, -0x2cc(%rbp)
fildl -0x2cc(%rbp)
fstpt -0xa0(%rbp)
movl $0x10, %esi
callq 0x74cb0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x74d10
movl %eax, -0x324(%rbp)
jmp 0x73621
movq -0x2e8(%rbp), %rdi
movl -0x324(%rbp), %eax
movl %eax, -0x2d0(%rbp)
fildl -0x2d0(%rbp)
fstpt -0xb0(%rbp)
movl $0x2, %esi
callq 0x74cb0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x74d10
movl %eax, -0x328(%rbp)
jmp 0x73663
movq -0x2e8(%rbp), %rdi
movl -0x328(%rbp), %eax
movl %eax, -0xb4(%rbp)
xorl %eax, %eax
movl %eax, %esi
callq 0x74cb0
movq %rax, %rsi
leaq -0x220(%rbp), %rdi
callq 0x61d0
jmp 0x73690
movq -0x2e8(%rbp), %rdi
movl $0x1, %esi
callq 0x74cb0
movq %rax, %rsi
leaq -0x240(%rbp), %rdi
callq 0x61d0
jmp 0x736b2
movq -0x2e8(%rbp), %rdi
movl -0xb4(%rbp), %eax
movl %eax, -0x32c(%rbp)
movl $0x3, %esi
callq 0x74cb0
movq %rax, %rsi
leaq -0x260(%rbp), %rdi
callq 0x61d0
jmp 0x736e0
leaq -0x280(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x61d0
jmp 0x736f2
movq -0x2e8(%rbp), %rdi
movl $0x5, %esi
callq 0x74cb0
movq %rax, %rsi
leaq -0x2a0(%rbp), %rdi
callq 0x61d0
jmp 0x73714
movq -0x2e8(%rbp), %rdi
fldt -0x40(%rbp)
fstpt -0x344(%rbp)
fldt -0x60(%rbp)
fstpt -0x338(%rbp)
movl $0x8, %esi
callq 0x74cb0
movq %rax, %rsi
leaq -0x2c0(%rbp), %rdi
callq 0x61d0
jmp 0x73748
movl -0x32c(%rbp), %ecx
fldt -0x344(%rbp)
fldt -0x338(%rbp)
movl -0x64(%rbp), %edx
movl -0x68(%rbp), %esi
movl -0x6c(%rbp), %edi
movl -0x70(%rbp), %r8d
fldt -0x80(%rbp)
fldt -0x90(%rbp)
fldt -0xa0(%rbp)
fldt -0xb0(%rbp)
movq %rsp, %rax
movq %rax, -0x350(%rbp)
fstpt 0x90(%rax)
fstpt 0x80(%rax)
fstpt 0x70(%rax)
fstpt 0x60(%rax)
movl %r8d, 0x50(%rax)
movl %edi, 0x48(%rax)
movl %esi, 0x40(%rax)
movl %edx, 0x38(%rax)
leaq -0x2c0(%rbp), %rdx
movq %rdx, 0x30(%rax)
fstpt 0x20(%rax)
fstpt 0x10(%rax)
leaq -0x2a0(%rbp), %rdx
movq %rdx, (%rax)
leaq -0x200(%rbp), %rdi
leaq -0x220(%rbp), %rsi
leaq -0x240(%rbp), %rdx
leaq -0x260(%rbp), %r8
leaq -0x280(%rbp), %r9
callq 0x53830
jmp 0x737ea
leaq -0x2c0(%rbp), %rdi
callq 0x6828
leaq -0x2a0(%rbp), %rdi
callq 0x6828
leaq -0x280(%rbp), %rdi
callq 0x6828
leaq -0x260(%rbp), %rdi
callq 0x6828
leaq -0x240(%rbp), %rdi
callq 0x6828
leaq -0x220(%rbp), %rdi
callq 0x6828
movq -0x2f0(%rbp), %rax
movq (%rax), %rdi
leaq -0x200(%rbp), %rsi
callq 0x53e10
jmp 0x7384a
leaq -0x200(%rbp), %rdi
callq 0x74d50
leaq -0x30(%rbp), %rdi
callq 0x6828
addq $0x3f0, %rsp            # imm = 0x3F0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x73930
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x7390a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x738fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x738f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x738e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x738da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0x6828
leaq -0x2a0(%rbp), %rdi
callq 0x6828
leaq -0x280(%rbp), %rdi
callq 0x6828
leaq -0x260(%rbp), %rdi
callq 0x6828
leaq -0x240(%rbp), %rdi
callq 0x6828
leaq -0x220(%rbp), %rdi
callq 0x6828
jmp 0x73930
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x74d50
leaq -0x30(%rbp), %rdi
callq 0x6828
movq -0x48(%rbp), %rdi
callq 0x6750
nopw %cs:(%rax,%rax)