// File: mahdibohloul[P]SnapTrip/./Models/Hotel.cpp
// Function: Database::Hotel::Hotel(Database::HotelInfo const&)
Database::Hotel::Hotel(const Database::HotelInfo& info) : geo_coordinates(Coordinates(info.longitude, info.latitude))
{
    this->id = info.unique_id;
    this->hotel_star_rating = info.hotel_rating;
    this->property_name = info.property_name;
    this->property_amenities = info.property_amenities;
    this->city = info.city;
    this->image_url = info.img_url;
    this->hotel_overview = info.hotel_overview;
    this->rooms = prepare_rooms(info);
    this->map_ratings = m_rating();
    avg_price = calculate_avg_price(info);
    this->default_rating = RatingInfo();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x108(%rbp)
movq %rdi, %rax
movq %rax, -0x130(%rbp)
callq 0x65d0
movq -0x108(%rbp), %rdi
addq $0x20, %rdi
movq %rdi, -0x128(%rbp)
callq 0x65d0
movq -0x108(%rbp), %rdi
addq $0x40, %rdi
movq %rdi, -0x120(%rbp)
callq 0x65d0
movq -0x108(%rbp), %rdi
addq $0x60, %rdi
movq %rdi, -0x118(%rbp)
callq 0x65d0
movq -0x108(%rbp), %rdi
subq $-0x80, %rdi
movq %rdi, -0x110(%rbp)
callq 0x65d0
movq -0x108(%rbp), %rdi
addq $0xa0, %rdi
movq -0x10(%rbp), %rax
fldt 0xc0(%rax)
fldt 0xb0(%rax)
movq %rsp, %rax
fstpt 0x10(%rax)
fstpt (%rax)
callq 0x5a570
jmp 0x581e6
movq -0x130(%rbp), %rdi
addq $0xc0, %rdi
movq %rdi, -0x150(%rbp)
callq 0x65d0
movq -0x130(%rbp), %rdi
addq $0xe0, %rdi
movq %rdi, -0x148(%rbp)
callq 0x5a5a0
movq -0x130(%rbp), %rdi
addq $0xf8, %rdi
movq %rdi, -0x140(%rbp)
callq 0x5a5c0
movq -0x130(%rbp), %rdi
addq $0x130, %rdi            # imm = 0x130
movq %rdi, -0x138(%rbp)
callq 0x57fb0
jmp 0x58250
movq -0x130(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x6060
jmp 0x58262
movq -0x130(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x40(%rax), %eax
movl %eax, 0x1c0(%rdi)
movq -0x10(%rbp), %rsi
addq $0x20, %rsi
addq $0x20, %rdi
callq 0x6060
jmp 0x58289
movq -0x130(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x68, %rsi
addq $0x60, %rdi
callq 0x6060
jmp 0x582a3
movq -0x130(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x88, %rsi
subq $-0x80, %rdi
callq 0x6060
jmp 0x582c0
movq -0x130(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0xd0, %rsi
addq $0xc0, %rdi
callq 0x6060
jmp 0x582e0
movq -0x130(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x48, %rsi
addq $0x40, %rdi
callq 0x6060
jmp 0x582fa
movq -0x130(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq -0x38(%rbp), %rdi
callq 0x58490
jmp 0x58310
movq -0x130(%rbp), %rdi
addq $0xe0, %rdi
leaq -0x38(%rbp), %rsi
movq %rsi, -0x170(%rbp)
callq 0x5a5e0
movq -0x170(%rbp), %rdi
callq 0x552f0
xorps %xmm0, %xmm0
movaps %xmm0, -0x50(%rbp)
movaps %xmm0, -0x60(%rbp)
movaps %xmm0, -0x70(%rbp)
leaq -0x70(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x5a5c0
movq -0x168(%rbp), %rsi
movq -0x130(%rbp), %rdi
addq $0xf8, %rdi
callq 0x5a610
movq -0x168(%rbp), %rdi
callq 0x5a640
movq -0x130(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x585b0
fstpt -0x15c(%rbp)
jmp 0x58397
movq -0x130(%rbp), %rax
fldt -0x15c(%rbp)
fstpt 0x1d0(%rax)
leaq -0x100(%rbp), %rdi
callq 0x57fb0
jmp 0x583b8
movq -0x130(%rbp), %rdi
addq $0x130, %rdi            # imm = 0x130
leaq -0x100(%rbp), %rsi
callq 0x5a660
leaq -0x100(%rbp), %rdi
callq 0x5a6b0
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5843f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5841b
movq -0x138(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
callq 0x5a6b0
movq -0x140(%rbp), %rdi
callq 0x5a640
movq -0x148(%rbp), %rdi
callq 0x552f0
movq -0x150(%rbp), %rdi
callq 0x6828
movq -0x110(%rbp), %rdi
callq 0x6828
movq -0x118(%rbp), %rdi
callq 0x6828
movq -0x120(%rbp), %rdi
callq 0x6828
movq -0x128(%rbp), %rdi
callq 0x6828
movq -0x108(%rbp), %rdi
callq 0x6828
movq -0x18(%rbp), %rdi
callq 0x6750
nopw %cs:(%rax,%rax)