LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: mahdibohloul[P]SnapTrip/./Models/User/User.cpp
// Function: Database::User::calculate_rating()
Database::User::Weights Database::User::calculate_rating()
{
    auto backend = Backend::get_instance();
    if(this->estimated_weights == Weights())
    {
        this->estimated_weights = backend->calculate_weights(this, get_ratings());
        return this->estimated_weights;
    }
    return this->estimated_weights;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x260, %rsp            # imm = 0x260
movq %rdi, -0x240(%rbp)
movq %rdi, %rax
movq %rax, -0x238(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x230(%rbp)
callq 0x76e70
movq %rax, %rcx
movq -0x230(%rbp), %rax
movq %rcx, -0x18(%rbp)
addq $0x210, %rax            # imm = 0x210
movq %rax, -0x228(%rbp)
leaq -0x150(%rbp), %rdi
movq %rdi, -0x220(%rbp)
callq 0x57fb0
movq -0x220(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
xorl %edx, %edx
callq 0x690f0
jmp 0x68689
movq -0x228(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x662a0
movb %al, -0x241(%rbp)
jmp 0x686a4
leaq -0xc0(%rbp), %rdi
callq 0x69380
leaq -0x150(%rbp), %rdi
callq 0x5a6b0
movb -0x241(%rbp), %al
testb $0x1, %al
jne 0x686cb
jmp 0x687c1
movq -0x230(%rbp), %rsi
movq -0x18(%rbp), %rax
movq %rax, -0x258(%rbp)
leaq -0x218(%rbp), %rdi
movq %rdi, -0x250(%rbp)
callq 0x688c0
movq -0x258(%rbp), %rsi
movq -0x230(%rbp), %rdx
movq -0x250(%rbp), %rcx
leaq -0x200(%rbp), %rdi
callq 0x804a0
jmp 0x68713
movq -0x230(%rbp), %rdi
addq $0x210, %rdi            # imm = 0x210
leaq -0x200(%rbp), %rsi
callq 0x69340
leaq -0x200(%rbp), %rdi
callq 0x69380
leaq -0x218(%rbp), %rdi
callq 0x69f20
movq -0x230(%rbp), %rsi
movq -0x240(%rbp), %rdi
addq $0x210, %rsi            # imm = 0x210
callq 0x69be0
jmp 0x687db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
jmp 0x68793
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x69380
leaq -0x150(%rbp), %rdi
callq 0x5a6b0
jmp 0x687eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x158(%rbp)
movl %eax, -0x15c(%rbp)
leaq -0x218(%rbp), %rdi
callq 0x69f20
jmp 0x687eb
movq -0x240(%rbp), %rdi
movq -0x230(%rbp), %rsi
addq $0x210, %rsi            # imm = 0x210
callq 0x69be0
movq -0x238(%rbp), %rax
addq $0x260, %rsp            # imm = 0x260
popq %rbp
retq
movq -0x158(%rbp), %rdi
callq 0x6750
nopw (%rax,%rax)
// File: mahdibohloul[P]SnapTrip/./Models/User/User.cpp
// Function: Database::User::already_rated(Database::Hotel*)
bool Database::User::already_rated(Hotel *hotel)
{
    auto searched_hotel = ratings.find(hotel);
    if(searched_hotel != ratings.end())
        return true;
    return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x30(%rbp)
addq $0xf0, %rdi
leaq -0x18(%rbp), %rsi
callq 0x69e70
movq -0x30(%rbp), %rdi
movq %rax, -0x20(%rbp)
addq $0xf0, %rdi
callq 0x69ed0
movq %rax, -0x28(%rbp)
leaq -0x20(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x69ea0
testb $0x1, %al
jne 0x68853
jmp 0x68859
movb $0x1, -0x1(%rbp)
jmp 0x6885d
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: mahdibohloul[P]SnapTrip/./Models/User/User.cpp
// Function: Database::User::get_ratings()
Database::Hotel::v_rating Database::User::get_ratings()
{
    auto temp = Hotel::v_rating();
    for(auto rating_itr = ratings.begin(); rating_itr != ratings.end(); rating_itr++)
        temp.push_back((*rating_itr).second);
    return temp;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x50(%rbp)
movq %rdi, %rax
movq %rax, -0x58(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
movb $0x0, -0x11(%rbp)
xorl %esi, %esi
movl $0x18, %edx
callq 0x6250
movq -0x50(%rbp), %rdi
callq 0x69f80
movq -0x48(%rbp), %rdi
addq $0xf0, %rdi
callq 0x69fa0
movq %rax, -0x20(%rbp)
movq -0x48(%rbp), %rdi
addq $0xf0, %rdi
callq 0x69ed0
movq %rax, -0x28(%rbp)
leaq -0x20(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x69ea0
testb $0x1, %al
jne 0x68937
jmp 0x6897c
leaq -0x20(%rbp), %rdi
callq 0x69f00
movq -0x50(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x69fd0
jmp 0x68952
jmp 0x68954
leaq -0x20(%rbp), %rdi
xorl %esi, %esi
callq 0x6a040
movq %rax, -0x40(%rbp)
jmp 0x68910
movq -0x50(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
callq 0x69f20
jmp 0x68999
movb $0x1, -0x11(%rbp)
testb $0x1, -0x11(%rbp)
jne 0x6898f
movq -0x50(%rbp), %rdi
callq 0x69f20
movq -0x58(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x6750
nopw %cs:(%rax,%rax)
// File: mahdibohloul[P]SnapTrip/./Models/Filters/CityFilter.cpp
// Function: CityFilter::filter(std::__cxx11::list<Database::Hotel*, std::allocator<Database::Hotel*>>&)
void CityFilter::filter(Database::l_hotels& hotels)
{
    if(activity != ConstNames::Active_Mode)
        this->hotels = hotels;
    else
    {
        for(auto hotel_itr = hotels.begin(); hotel_itr != hotels.end(); hotel_itr++)
        {
            if((*hotel_itr)->get_city() == this->city)
                this->hotels.push_back(*hotel_itr);
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
movb 0x20(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
je 0x71a2b
movq -0x50(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x8, %rdi
callq 0x71ae0
jmp 0x71acc
movq -0x10(%rbp), %rdi
callq 0x54ff0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x55050
movq %rax, -0x20(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x55020
testb $0x1, %al
jne 0x71a58
jmp 0x71aca
leaq -0x18(%rbp), %rdi
callq 0x55110
movq (%rax), %rsi
leaq -0x40(%rbp), %rdi
callq 0x59ef0
movq -0x50(%rbp), %rsi
addq $0x28, %rsi
leaq -0x40(%rbp), %rdi
callq 0x55080
movb %al, -0x51(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x6828
movb -0x51(%rbp), %al
testb $0x1, %al
jne 0x71a93
jmp 0x71ab4
movq -0x50(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x60(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x55110
movq -0x60(%rbp), %rdi
movq %rax, %rsi
callq 0x54ca0
jmp 0x71ab6
leaq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x55130
movq %rax, -0x48(%rbp)
jmp 0x71a38
jmp 0x71acc
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: mahdibohloul[P]SnapTrip/./Models/Filters/AvgPriceFilter.cpp
// Function: AvgPriceFilter::filter(std::__cxx11::list<Database::Hotel*, std::allocator<Database::Hotel*>>&)
void AvgPriceFilter::filter(Database::l_hotels& hotels)
{
    if(activity != ConstNames::Active_Mode)
        this->hotels = hotels;
    else
    {
        for(auto hotel_itr = hotels.begin(); hotel_itr != hotels.end(); hotel_itr++)
        {
            if(in_range(*hotel_itr))
                this->hotels.push_back(*hotel_itr);
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movb 0x20(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
je 0x720e8
movq -0x30(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x8, %rdi
callq 0x71ae0
jmp 0x72166
movq -0x10(%rbp), %rdi
callq 0x54ff0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x55050
movq %rax, -0x20(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x55020
testb $0x1, %al
jne 0x72115
jmp 0x72164
leaq -0x18(%rbp), %rdi
callq 0x55110
movq -0x30(%rbp), %rdi
movq (%rax), %rsi
callq 0x72170
testb $0x1, %al
jne 0x72130
jmp 0x72151
movq -0x30(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x38(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x55110
movq -0x38(%rbp), %rdi
movq %rax, %rsi
callq 0x54ca0
jmp 0x72153
leaq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x55130
movq %rax, -0x28(%rbp)
jmp 0x720f5
jmp 0x72166
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: mahdibohloul[P]SnapTrip/./Models/Filters/AdvancedFilter.cpp
// Function: AdvancedFilter::AdvancedFilter(Database::User::FilterInfo const&)
AdvancedFilter::AdvancedFilter(const Database::User::FilterInfo& filter_info)
{
    type = filter_info.type;
    quantity = filter_info.quantity;
    check_in = filter_info.check_in;
    check_out = filter_info.check_out;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x18(%rbp)
movl $0x1, %esi
callq 0x717a0
movq -0x18(%rbp), %rax
leaq 0x95713(%rip), %rcx     # 0x107920
addq $0x10, %rcx
movq %rcx, (%rax)
movq -0x10(%rbp), %rcx
movl 0x80(%rcx), %ecx
movl %ecx, 0x24(%rax)
movq -0x10(%rbp), %rcx
movl 0x84(%rcx), %ecx
movl %ecx, 0x28(%rax)
movq -0x10(%rbp), %rcx
movl 0x88(%rcx), %ecx
movl %ecx, 0x2c(%rax)
movq -0x10(%rbp), %rcx
movl 0x8c(%rcx), %ecx
movl %ecx, 0x30(%rax)
addq $0x20, %rsp
popq %rbp
retq
nop
// File: mahdibohloul[P]SnapTrip/./Models/Rating.cpp
// Function: Database::Hotel::Rating::Rating(Database::Hotel::RatingInfo const&)
Database::Hotel::Rating::Rating(const RatingInfo& rating_info)
{
    this->location = rating_info.location;
    this->cleanliness = rating_info.cleanliness;
    this->staff = rating_info.staff;
    this->facilities = rating_info.facilities;
    this->value_for_money = rating_info.value_for_money;
    this->overall_rating = rating_info.overall_rating;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq -0x10(%rbp), %rcx
fldt 0x20(%rcx)
fstpt (%rax)
movq -0x10(%rbp), %rcx
fldt 0x30(%rcx)
fstpt 0x10(%rax)
movq -0x10(%rbp), %rcx
fldt 0x40(%rcx)
fstpt 0x20(%rax)
movq -0x10(%rbp), %rcx
fldt 0x50(%rcx)
fstpt 0x30(%rax)
movq -0x10(%rbp), %rcx
fldt 0x60(%rcx)
fstpt 0x40(%rax)
movq -0x10(%rbp), %rcx
fldt 0x70(%rcx)
fstpt 0x50(%rax)
popq %rbp
retq
nopl (%rax)
// File: mahdibohloul[P]SnapTrip/./ORM/ObjectRelational.cpp
// Function: ObjectRelational::authentication(Database::UserInfo, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::list<Database::User*, std::allocator<Database::User*>> const&)
bool ObjectRelational::authentication(Database::UserInfo user_info, const string mode, const Database::l_users& users)
{
    Database::User* user = nullptr;
    if(mode == ConstNames::Signup_Order || mode == ConstNames::User_Authentication)
        user = database->query_in_users(user_info);
    else if(mode == ConstNames::Online_User_Check)
        user = database->query_in_users(user_info, users);
    if(user != nullptr)
        return ConstNames::Exist;
    return !ConstNames::Exist;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdx, -0x140(%rbp)
movq %rdi, %rax
movq -0x140(%rbp), %rdi
movq %rsi, -0x138(%rbp)
movq %rdi, -0x130(%rbp)
movq %rax, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdi, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x128(%rbp)
movq $0x0, -0x30(%rbp)
leaq 0xa1f1c(%rip), %rsi     # 0x115c20
callq 0x55080
testb $0x1, %al
jne 0x73d29
movq -0x130(%rbp), %rdi
leaq 0xa21c5(%rip), %rsi     # 0x115ee0
callq 0x55080
testb $0x1, %al
jne 0x73d29
jmp 0x73daf
movq -0x138(%rbp), %rsi
movq -0x128(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x158(%rbp)
leaq -0xa0(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0x54df0
movq -0x158(%rbp), %rdi
movq -0x150(%rbp), %rsi
callq 0x53f00
movq %rax, -0x148(%rbp)
jmp 0x73d70
movq -0x148(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x54e70
jmp 0x73e51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x54e70
jmp 0x73e70
movq -0x130(%rbp), %rdi
leaq 0xa2103(%rip), %rsi     # 0x115ec0
callq 0x55080
testb $0x1, %al
jne 0x73dcb
jmp 0x73e4f
movq -0x138(%rbp), %rsi
movq -0x128(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x170(%rbp)
leaq -0x120(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x54df0
movq -0x170(%rbp), %rdi
movq -0x168(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x540c0
movq %rax, -0x160(%rbp)
jmp 0x73e16
movq -0x160(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x54e70
jmp 0x73e4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x54e70
jmp 0x73e70
jmp 0x73e51
cmpq $0x0, -0x30(%rbp)
je 0x73e5e
movb $0x1, -0x1(%rbp)
jmp 0x73e62
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
movq -0xa8(%rbp), %rdi
callq 0x6750
nopl (%rax)
// File: mahdibohloul[P]SnapTrip/./ORM/ObjectRelational.cpp
// Function: ObjectRelational::post_rating(Database::Hotel::RatingInfo&)
void ObjectRelational::post_rating(Database::Hotel::RatingInfo &rating_info)
{
    auto hotel = database->query_in_hotels(rating_info.hotel_id);
    if(hotel == nullptr)
        throw Exception(ConstNames::Not_Found_msg);
    hotel->post_rating(rating_info);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x88(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x38(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x61d0
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
callq 0x54210
movq %rax, -0x78(%rbp)
jmp 0x746e8
leaq -0x38(%rbp), %rdi
callq 0x6828
movq -0x78(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x747ad
movb $0x1, -0x69(%rbp)
movl $0x28, %edi
callq 0x6210
movq %rax, -0x90(%rbp)
leaq 0xa13e0(%rip), %rsi     # 0x115b00
leaq -0x68(%rbp), %rdi
callq 0x61d0
jmp 0x7472b
movq -0x90(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0xabc90
jmp 0x7473d
movq -0x90(%rbp), %rdi
movb $0x0, -0x69(%rbp)
leaq 0x93519(%rip), %rsi     # 0x107c68
leaq 0x375aa(%rip), %rdx     # 0xabd00
callq 0x6710
jmp 0x747cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x6828
jmp 0x747c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x74797
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x6828
testb $0x1, -0x69(%rbp)
jne 0x7479f
jmp 0x747ab
movq -0x90(%rbp), %rdi
callq 0x6360
jmp 0x747c3
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x58c30
addq $0x90, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x6750
nopl (%rax)
// File: mahdibohloul[P]SnapTrip/./UserInterface/UserInterface.cpp
// Function: UserInterface::database_setup(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void UserInterface::database_setup(Content file_name)
{
    ifstream db_file(file_name);
    Content content;
    dump_one_line(db_file);
    while(db_file)
    {
        getline(db_file, content);
        if(content.size() >= ConstNames::Minimum_of_Characters)
        {
            Backend::data_t data = api->parse_content(content, ConstNames::Comma);
            api->database_setup(data);
        }
        else
            break;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2c0, %rsp            # imm = 0x2C0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x2a8(%rbp)
leaq -0x218(%rbp), %rdi
movq %rdi, -0x2a0(%rbp)
movl $0x8, %edx
callq 0x6670
leaq -0x238(%rbp), %rdi
callq 0x65d0
movq -0x2a8(%rbp), %rdi
movq -0x2a0(%rbp), %rsi
callq 0x76980
jmp 0x767b7
jmp 0x767b9
movq -0x218(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x218(%rbp,%rax), %rdi
callq 0x6550
movb %al, -0x2a9(%rbp)
jmp 0x767d9
movb -0x2a9(%rbp), %al
testb $0x1, %al
jne 0x767e8
jmp 0x76939
leaq -0x218(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x60b0
jmp 0x767fd
leaq -0x238(%rbp), %rdi
callq 0x6340
cmpq $0x1, %rax
jb 0x76932
movq -0x2a8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x2b8(%rbp)
leaq -0x280(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x61d0
jmp 0x76839
movq -0x2b8(%rbp), %rsi
leaq -0x260(%rbp), %rdi
leaq -0x280(%rbp), %rdx
movl $0x2c, %ecx
callq 0x72850
jmp 0x7685a
leaq -0x280(%rbp), %rdi
callq 0x6828
movq -0x2a8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x2c0(%rbp)
leaq -0x298(%rbp), %rdi
leaq -0x260(%rbp), %rsi
callq 0x72990
jmp 0x7688c
movq -0x2c0(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x72770
jmp 0x768a1
leaq -0x298(%rbp), %rdi
callq 0x72a80
leaq -0x260(%rbp), %rdi
callq 0x72a80
jmp 0x76934
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0x7695a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x6828
jmp 0x7695a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0x76924
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0x298(%rbp), %rdi
callq 0x72a80
leaq -0x260(%rbp), %rdi
callq 0x72a80
jmp 0x7695a
jmp 0x76939
jmp 0x767b9
leaq -0x238(%rbp), %rdi
callq 0x6828
leaq -0x218(%rbp), %rdi
callq 0x6100
addq $0x2c0, %rsp            # imm = 0x2C0
popq %rbp
retq
leaq -0x238(%rbp), %rdi
callq 0x6828
leaq -0x218(%rbp), %rdi
callq 0x6100
movq -0x240(%rbp), %rdi
callq 0x6750
nop
// File: mahdibohloul[P]SnapTrip/./UserInterface/UserInterface.cpp
// Function: UserInterface::rating_db_setup(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void UserInterface::rating_db_setup(Content file_name)
{
    ifstream db_file(file_name);
    Content content;
    dump_one_line(db_file);
    while(db_file)
    {
        getline(db_file, content);
        if(content.size() >= ConstNames::Minimum_of_Characters)
        {
            Backend::data_t data = api->parse_content(content, ConstNames::Comma);
            api->rating_db_setup(data);
        }
        else
            break;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2c0, %rsp            # imm = 0x2C0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x2a8(%rbp)
leaq -0x218(%rbp), %rdi
movq %rdi, -0x2a0(%rbp)
movl $0x8, %edx
callq 0x6670
leaq -0x238(%rbp), %rdi
callq 0x65d0
movq -0x2a8(%rbp), %rdi
movq -0x2a0(%rbp), %rsi
callq 0x76980
jmp 0x76a37
jmp 0x76a39
movq -0x218(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x218(%rbp,%rax), %rdi
callq 0x6550
movb %al, -0x2a9(%rbp)
jmp 0x76a59
movb -0x2a9(%rbp), %al
testb $0x1, %al
jne 0x76a68
jmp 0x76bb9
leaq -0x218(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x60b0
jmp 0x76a7d
leaq -0x238(%rbp), %rdi
callq 0x6340
cmpq $0x1, %rax
jb 0x76bb2
movq -0x2a8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x2b8(%rbp)
leaq -0x280(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x61d0
jmp 0x76ab9
movq -0x2b8(%rbp), %rsi
leaq -0x260(%rbp), %rdi
leaq -0x280(%rbp), %rdx
movl $0x2c, %ecx
callq 0x72850
jmp 0x76ada
leaq -0x280(%rbp), %rdi
callq 0x6828
movq -0x2a8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x2c0(%rbp)
leaq -0x298(%rbp), %rdi
leaq -0x260(%rbp), %rsi
callq 0x72990
jmp 0x76b0c
movq -0x2c0(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x727e0
jmp 0x76b21
leaq -0x298(%rbp), %rdi
callq 0x72a80
leaq -0x260(%rbp), %rdi
callq 0x72a80
jmp 0x76bb4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0x76bda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x6828
jmp 0x76bda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
jmp 0x76ba4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x240(%rbp)
movl %eax, -0x244(%rbp)
leaq -0x298(%rbp), %rdi
callq 0x72a80
leaq -0x260(%rbp), %rdi
callq 0x72a80
jmp 0x76bda
jmp 0x76bb9
jmp 0x76a39
leaq -0x238(%rbp), %rdi
callq 0x6828
leaq -0x218(%rbp), %rdi
callq 0x6100
addq $0x2c0, %rsp            # imm = 0x2C0
popq %rbp
retq
leaq -0x238(%rbp), %rdi
callq 0x6828
leaq -0x218(%rbp), %rdi
callq 0x6100
movq -0x240(%rbp), %rdi
callq 0x6750
nop
// File: mahdibohloul[P]SnapTrip/./UserInterface/UserInterface.cpp
// Function: UserInterface::process()
void UserInterface::process()
{
    string command;
    while(getline(cin, command))
    {
        try
        {
            Backend::data_t command_data = api->parse_content(command, ConstNames::Space);
            api->command_processor(command_data);
            cout << api->get_response();
        }
        catch(const exception& ex)
        {
            cout << ex.what() << endl;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xb8(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x65d0
movq 0x913b6(%rip), %rdi     # 0x107fe0
leaq -0x28(%rbp), %rsi
callq 0x60b0
movq %rax, -0xc0(%rbp)
jmp 0x76c3c
movq -0xc0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x6550
movb %al, -0xc1(%rbp)
jmp 0x76c5a
movb -0xc1(%rbp), %al
testb $0x1, %al
jne 0x76c69
jmp 0x76e37
movq -0xb8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xd0(%rbp)
leaq -0x70(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x61d0
jmp 0x76c89
movq -0xd0(%rbp), %rsi
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rdx
movl $0x20, %ecx
callq 0x72850
jmp 0x76ca4
leaq -0x70(%rbp), %rdi
callq 0x6828
movq -0xb8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xd8(%rbp)
leaq -0x88(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x72990
jmp 0x76cd0
movq -0xd8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x728f0
jmp 0x76ce5
leaq -0x88(%rbp), %rdi
callq 0x72a80
movq -0xb8(%rbp), %rax
movq (%rax), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x72960
jmp 0x76d09
movq 0x91298(%rip), %rdi     # 0x107fa8
leaq -0xa8(%rbp), %rsi
callq 0x63d0
jmp 0x76d1e
leaq -0xa8(%rbp), %rdi
callq 0x6828
leaq -0x50(%rbp), %rdi
callq 0x72a80
jmp 0x76e1d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x76e49
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x76db7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x6828
jmp 0x76db7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x76dae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x72a80
jmp 0x76dae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x6828
leaq -0x50(%rbp), %rdi
callq 0x72a80
movl -0x34(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x76e49
movq -0x30(%rbp), %rdi
callq 0x61a0
movq %rax, -0xb0(%rbp)
movq -0xb0(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, %rsi
movq 0x911b7(%rip), %rdi     # 0x107fa8
callq 0x6430
movq %rax, -0xe0(%rbp)
jmp 0x76dff
movq -0xe0(%rbp), %rdi
movq 0x91163(%rip), %rsi     # 0x107f70
callq 0x6490
jmp 0x76e14
callq 0x66a0
jmp 0x76e1b
jmp 0x76e1d
jmp 0x76c23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
callq 0x66a0
jmp 0x76e35
jmp 0x76e49
leaq -0x28(%rbp), %rdi
callq 0x6828
addq $0xe0, %rsp
popq %rbp
retq
leaq -0x28(%rbp), %rdi
callq 0x6828
movq -0x30(%rbp), %rdi
callq 0x6750
movq %rax, %rdi
callq 0x54c90
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: mahdibohloul[P]SnapTrip/./Business-Logic/Backend.cpp
// Function: Backend::parse_content(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, char)
Backend::data_t Backend::parse_content(Content content, char separator)
{
    data_t parsed_data;
    int separator_pos;
    while((separator_pos = content.find(separator)) != string::npos)
    {
        parsed_data.push_back(content.substr(0, separator_pos));
        content = content.substr(separator_pos + 1);
    }
    parsed_data.push_back(content.substr(separator_pos + 1));
    return parsed_data;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdx, -0xa8(%rbp)
movq %rdi, -0xa0(%rbp)
movb %cl, %al
movq %rdi, %rcx
movq %rcx, -0x98(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movb %al, -0x19(%rbp)
movb $0x0, -0x1a(%rbp)
callq 0x808f0
movq -0xa8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
movsbl -0x19(%rbp), %esi
callq 0x6590
movl %eax, -0x20(%rbp)
cltq
cmpq $-0x1, %rax
je 0x7817f
movq -0xa8(%rbp), %rsi
movslq -0x20(%rbp), %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x40(%rbp), %rdi
callq 0x6470
jmp 0x780fa
movq -0xa0(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x80910
jmp 0x7810c
leaq -0x40(%rbp), %rdi
callq 0x6828
movq -0xa8(%rbp), %rsi
movl -0x20(%rbp), %eax
incl %eax
movslq %eax, %rdx
leaq -0x70(%rbp), %rdi
movq $-0x1, %rcx
callq 0x6470
jmp 0x78136
movq -0xa8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x6530
leaq -0x70(%rbp), %rdi
callq 0x6828
jmp 0x780bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x78206
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x6828
jmp 0x78206
movq -0xa8(%rbp), %rsi
movl -0x20(%rbp), %eax
incl %eax
movslq %eax, %rdx
leaq -0x90(%rbp), %rdi
movq $-0x1, %rcx
callq 0x6470
jmp 0x781a3
movq -0xa0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x80910
jmp 0x781b8
leaq -0x90(%rbp), %rdi
callq 0x6828
movb $0x1, -0x1a(%rbp)
testb $0x1, -0x1a(%rbp)
jne 0x781f6
jmp 0x781ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x6828
jmp 0x78206
movq -0xa0(%rbp), %rdi
callq 0x72a80
movq -0x98(%rbp), %rax
addq $0xb0, %rsp
popq %rbp
retq
movq -0xa0(%rbp), %rdi
callq 0x72a80
movq -0x48(%rbp), %rdi
callq 0x6750
nopl (%rax,%rax)
// File: mahdibohloul[P]SnapTrip/./Business-Logic/Backend.cpp
// Function: Backend::in_the_command(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, Backend::RequestType)
bool Backend::in_the_command(const std::string& command, enum RequestType type)
{
    if(type == POST && in_the_post_command(command) == IN)
        return IN;
    else if(type == GET && in_the_get_command(command) == IN)
        return IN;
    else if(type == DELETE && in_the_delete_command(command) == IN)
        return IN;
    return !IN;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
cmpl $0x0, -0x1c(%rbp)
jne 0x7888e
movq -0x28(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x80320
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x7888e
movb $0x1, -0x1(%rbp)
jmp 0x788dc
cmpl $0x1, -0x1c(%rbp)
jne 0x788b1
movq -0x28(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x80390
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x788b1
movb $0x1, -0x1(%rbp)
jmp 0x788dc
cmpl $0x2, -0x1c(%rbp)
jne 0x788d4
movq -0x28(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x80400
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x788d4
movb $0x1, -0x1(%rbp)
jmp 0x788dc
jmp 0x788d6
jmp 0x788d8
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: mahdibohloul[P]SnapTrip/./Business-Logic/Backend.cpp
// Function: Backend::signup(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::signup(data_t data)
{
    if(!data.empty())
    {
        check_question_mark(data);
        check_access(ConstNames::Offline_Mode);
        Database::UserInfo user_info = fill_user_info(data, ConstNames::Signup_Order);
        if(has_permission_to_signup(user_info) == ConstNames::Permissible){
            responding(ConstNames::OK_msg);
        }
    }
    else
        throw Exception(ConstNames::Bad_Request_msg);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movq %rsi, -0x110(%rbp)
movq %rdi, %rax
movq -0x110(%rbp), %rdi
movq %rdi, -0x108(%rbp)
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x100(%rbp)
callq 0x80940
testb $0x1, %al
jne 0x79076
movq -0x108(%rbp), %rsi
movq -0x100(%rbp), %rdi
callq 0x79140
movq -0x100(%rbp), %rdi
leaq 0x9eccc(%rip), %rsi     # 0x117c20
callq 0x79240
leaq 0x9e560(%rip), %rsi     # 0x1174c0
leaq -0xa0(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0x61d0
movq -0x100(%rbp), %rsi
movq -0x108(%rbp), %rdx
movq -0x118(%rbp), %rcx
leaq -0x80(%rbp), %rdi
callq 0x79710
jmp 0x78f93
leaq -0xa0(%rbp), %rdi
callq 0x6828
movq -0x100(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x7a340
movb %al, -0x119(%rbp)
jmp 0x78fb7
movb -0x119(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x7905a
leaq 0x9e48e(%rip), %rsi     # 0x117460
leaq -0xd0(%rbp), %rdi
callq 0x61d0
jmp 0x78fe0
movq -0x100(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x7a5e0
jmp 0x78ff5
leaq -0xd0(%rbp), %rdi
callq 0x6828
jmp 0x7905a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x6828
jmp 0x7912f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x79068
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x6828
jmp 0x79068
leaq -0x80(%rbp), %rdi
callq 0x54e70
jmp 0x79126
leaq -0x80(%rbp), %rdi
callq 0x54e70
jmp 0x7912f
movb $0x1, -0xf1(%rbp)
movl $0x28, %edi
callq 0x6210
movq %rax, -0x128(%rbp)
leaq 0x9e2eb(%rip), %rsi     # 0x117380
leaq -0xf0(%rbp), %rdi
callq 0x61d0
jmp 0x790a3
movq -0x128(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0xabc90
jmp 0x790b8
movq -0x128(%rbp), %rdi
movb $0x0, -0xf1(%rbp)
leaq 0x8eb9b(%rip), %rsi     # 0x107c68
leaq 0x32c2c(%rip), %rdx     # 0xabd00
callq 0x6710
jmp 0x7913b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x7910d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x6828
testb $0x1, -0xf1(%rbp)
jne 0x79118
jmp 0x79124
movq -0x128(%rbp), %rdi
callq 0x6360
jmp 0x7912f
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
movq -0xa8(%rbp), %rdi
callq 0x6750
nopl (%rax,%rax)
// File: mahdibohloul[P]SnapTrip/./Business-Logic/Backend.cpp
// Function: Backend::check_question_mark(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::check_question_mark(data_t& data)
{
    auto command_itr = data.begin();
    if(*command_itr != ConstNames::Question_Mark)
        throw Exception(ConstNames::Bad_Request_msg);
    data.erase(command_itr);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x80980
movq %rax, -0x18(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x809b0
movq %rax, %rdi
leaq 0x9e090(%rip), %rsi     # 0x117200
callq 0x54fc0
testb $0x1, %al
jne 0x7917e
jmp 0x79204
movb $0x1, -0x45(%rbp)
movl $0x28, %edi
callq 0x6210
movq %rax, -0x60(%rbp)
leaq 0x9e1e9(%rip), %rsi     # 0x117380
leaq -0x38(%rbp), %rdi
callq 0x61d0
jmp 0x791a2
movq -0x60(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xabc90
jmp 0x791b1
movq -0x60(%rbp), %rdi
movb $0x0, -0x45(%rbp)
leaq 0x8eaa8(%rip), %rsi     # 0x107c68
leaq 0x32b39(%rip), %rdx     # 0xabd00
callq 0x6710
jmp 0x79239
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x791f1
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 0x791f9
jmp 0x79202
movq -0x60(%rbp), %rdi
callq 0x6360
jmp 0x79230
movq -0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x80b20
movq -0x68(%rbp), %rdi
movq -0x50(%rbp), %rsi
callq 0x80ab0
movq %rax, -0x58(%rbp)
addq $0x70, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x6750
nopl (%rax)
// File: mahdibohloul[P]SnapTrip/./Business-Logic/Backend.cpp
// Function: Backend::has_permission_to_signup(Database::UserInfo const&)
bool Backend::has_permission_to_signup(const Database::UserInfo& user_info)
{
    if(object_relational->authentication(user_info, ConstNames::Signup_Order) != ConstNames::Exist){
        online_users.push_back(object_relational->get_specific_user(user_info, ConstNames::Signup_Order));
        return ConstNames::Permissible;
    }
    throw Exception(ConstNames::Bad_Request_msg);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1d0, %rsp            # imm = 0x1D0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x188(%rbp)
movq (%rax), %rax
movq %rax, -0x180(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x54df0
leaq 0x9d144(%rip), %rsi     # 0x1174c0
leaq -0xa0(%rbp), %rdi
callq 0x61d0
jmp 0x7a38a
xorps %xmm0, %xmm0
movaps %xmm0, -0xd0(%rbp)
movq $0x0, -0xc0(%rbp)
leaq -0xd0(%rbp), %rdi
movq %rdi, -0x198(%rbp)
callq 0x54b40
movq -0x180(%rbp), %rdi
movq -0x198(%rbp), %rcx
leaq -0x80(%rbp), %rsi
leaq -0xa0(%rbp), %rdx
callq 0x73cb0
movb %al, -0x189(%rbp)
jmp 0x7a3d8
movb -0x189(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x19c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x54bd0
leaq -0xa0(%rbp), %rdi
callq 0x6828
leaq -0x80(%rbp), %rdi
callq 0x54e70
movl -0x19c(%rbp), %eax
cmpl $0x1, %eax
je 0x7a51d
movq -0x188(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x1c0(%rbp)
movq (%rax), %rax
movq %rax, -0x1b8(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x150(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
callq 0x54df0
movq -0x1b8(%rbp), %rdi
movq -0x1b0(%rbp), %rsi
leaq 0x9d05c(%rip), %rdx     # 0x1174c0
callq 0x73bc0
movq %rax, -0x1a8(%rbp)
jmp 0x7a472
movq -0x1c0(%rbp), %rdi
movq -0x1a8(%rbp), %rax
movq %rax, -0xd8(%rbp)
leaq -0xd8(%rbp), %rsi
callq 0x80bc0
jmp 0x7a495
leaq -0x150(%rbp), %rdi
callq 0x54e70
movb $0x1, %al
andb $0x1, %al
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x7a4ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x54bd0
leaq -0xa0(%rbp), %rdi
callq 0x6828
leaq -0x80(%rbp), %rdi
callq 0x54e70
jmp 0x7a5cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x54e70
jmp 0x7a5cd
movb $0x1, -0x171(%rbp)
movl $0x28, %edi
callq 0x6210
movq %rax, -0x1c8(%rbp)
leaq 0x9ce44(%rip), %rsi     # 0x117380
leaq -0x170(%rbp), %rdi
callq 0x61d0
jmp 0x7a54a
movq -0x1c8(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0xabc90
jmp 0x7a55f
movq -0x1c8(%rbp), %rdi
movb $0x0, -0x171(%rbp)
leaq 0x8d6f4(%rip), %rsi     # 0x107c68
leaq 0x31785(%rip), %rdx     # 0xabd00
callq 0x6710
jmp 0x7a5d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x7a5b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x6828
testb $0x1, -0x171(%rbp)
jne 0x7a5bf
jmp 0x7a5cb
movq -0x1c8(%rbp), %rdi
callq 0x6360
jmp 0x7a5cd
movq -0xa8(%rbp), %rdi
callq 0x6750
nopl (%rax)
// File: mahdibohloul[P]SnapTrip/./Business-Logic/Backend.cpp
// Function: Backend::login(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::login(data_t data)
{
    if(!data.empty())
    {
        check_question_mark(data);
        check_access(ConstNames::Offline_Mode);
        Database::UserInfo user_info = fill_user_info(data, ConstNames::Login_Order);
        if(has_permission_to_login(user_info) == ConstNames::Permissible)
            responding(ConstNames::OK_msg);
    }
    else
        throw Exception(ConstNames::Bad_Request_msg);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movq %rsi, -0x110(%rbp)
movq %rdi, %rax
movq -0x110(%rbp), %rdi
movq %rdi, -0x108(%rbp)
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x100(%rbp)
callq 0x80940
testb $0x1, %al
jne 0x7a7e6
movq -0x108(%rbp), %rsi
movq -0x100(%rbp), %rdi
callq 0x79140
movq -0x100(%rbp), %rdi
leaq 0x9d55c(%rip), %rsi     # 0x117c20
callq 0x79240
leaq 0x9ce10(%rip), %rsi     # 0x1174e0
leaq -0xa0(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0x61d0
movq -0x100(%rbp), %rsi
movq -0x108(%rbp), %rdx
movq -0x118(%rbp), %rcx
leaq -0x80(%rbp), %rdi
callq 0x79710
jmp 0x7a703
leaq -0xa0(%rbp), %rdi
callq 0x6828
movq -0x100(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x7a8b0
movb %al, -0x119(%rbp)
jmp 0x7a727
movb -0x119(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x7a7ca
leaq 0x9cd1e(%rip), %rsi     # 0x117460
leaq -0xd0(%rbp), %rdi
callq 0x61d0
jmp 0x7a750
movq -0x100(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x7a5e0
jmp 0x7a765
leaq -0xd0(%rbp), %rdi
callq 0x6828
jmp 0x7a7ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x6828
jmp 0x7a89f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x7a7d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x6828
jmp 0x7a7d8
leaq -0x80(%rbp), %rdi
callq 0x54e70
jmp 0x7a896
leaq -0x80(%rbp), %rdi
callq 0x54e70
jmp 0x7a89f
movb $0x1, -0xf1(%rbp)
movl $0x28, %edi
callq 0x6210
movq %rax, -0x128(%rbp)
leaq 0x9cb7b(%rip), %rsi     # 0x117380
leaq -0xf0(%rbp), %rdi
callq 0x61d0
jmp 0x7a813
movq -0x128(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0xabc90
jmp 0x7a828
movq -0x128(%rbp), %rdi
movb $0x0, -0xf1(%rbp)
leaq 0x8d42b(%rip), %rsi     # 0x107c68
leaq 0x314bc(%rip), %rdx     # 0xabd00
callq 0x6710
jmp 0x7a8ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x7a87d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x6828
testb $0x1, -0xf1(%rbp)
jne 0x7a888
jmp 0x7a894
movq -0x128(%rbp), %rdi
callq 0x6360
jmp 0x7a89f
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
movq -0xa8(%rbp), %rdi
callq 0x6750
nopl (%rax,%rax)
// File: mahdibohloul[P]SnapTrip/./Business-Logic/Backend.cpp
// Function: Backend::has_permission_to_login(Database::UserInfo const&)
bool Backend::has_permission_to_login(const Database::UserInfo& user_info)
{
    if(object_relational->authentication(user_info, ConstNames::User_Authentication) == ConstNames::Exist){
        online_users.push_back(object_relational->get_specific_user(user_info, ConstNames::User_Authentication));
        return ConstNames::Permissible;
    }
    throw Exception(ConstNames::Bad_Request_msg);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1d0, %rsp            # imm = 0x1D0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x188(%rbp)
movq (%rax), %rax
movq %rax, -0x180(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x54df0
leaq 0x9ce94(%rip), %rsi     # 0x117780
leaq -0xa0(%rbp), %rdi
callq 0x61d0
jmp 0x7a8fa
xorps %xmm0, %xmm0
movaps %xmm0, -0xd0(%rbp)
movq $0x0, -0xc0(%rbp)
leaq -0xd0(%rbp), %rdi
movq %rdi, -0x198(%rbp)
callq 0x54b40
movq -0x180(%rbp), %rdi
movq -0x198(%rbp), %rcx
leaq -0x80(%rbp), %rsi
leaq -0xa0(%rbp), %rdx
callq 0x73cb0
movb %al, -0x189(%rbp)
jmp 0x7a948
movb -0x189(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x19c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x54bd0
leaq -0xa0(%rbp), %rdi
callq 0x6828
leaq -0x80(%rbp), %rdi
callq 0x54e70
movl -0x19c(%rbp), %eax
cmpl $0x1, %eax
jne 0x7aa8d
movq -0x188(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x1c0(%rbp)
movq (%rax), %rax
movq %rax, -0x1b8(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x150(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
callq 0x54df0
movq -0x1b8(%rbp), %rdi
movq -0x1b0(%rbp), %rsi
leaq 0x9cdac(%rip), %rdx     # 0x117780
callq 0x73bc0
movq %rax, -0x1a8(%rbp)
jmp 0x7a9e2
movq -0x1c0(%rbp), %rdi
movq -0x1a8(%rbp), %rax
movq %rax, -0xd8(%rbp)
leaq -0xd8(%rbp), %rsi
callq 0x80bc0
jmp 0x7aa05
leaq -0x150(%rbp), %rdi
callq 0x54e70
movb $0x1, %al
andb $0x1, %al
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x7aa5c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x54bd0
leaq -0xa0(%rbp), %rdi
callq 0x6828
leaq -0x80(%rbp), %rdi
callq 0x54e70
jmp 0x7ab3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x54e70
jmp 0x7ab3d
movb $0x1, -0x171(%rbp)
movl $0x28, %edi
callq 0x6210
movq %rax, -0x1c8(%rbp)
leaq 0x9c8d4(%rip), %rsi     # 0x117380
leaq -0x170(%rbp), %rdi
callq 0x61d0
jmp 0x7aaba
movq -0x1c8(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0xabc90
jmp 0x7aacf
movq -0x1c8(%rbp), %rdi
movb $0x0, -0x171(%rbp)
leaq 0x8d184(%rip), %rsi     # 0x107c68
leaq 0x31215(%rip), %rdx     # 0xabd00
callq 0x6710
jmp 0x7ab49
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x7ab24
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x6828
testb $0x1, -0x171(%rbp)
jne 0x7ab2f
jmp 0x7ab3b
movq -0x1c8(%rbp), %rdi
callq 0x6360
jmp 0x7ab3d
movq -0xa8(%rbp), %rdi
callq 0x6750
nopl (%rax)
// File: mahdibohloul[P]SnapTrip/./Business-Logic/Backend.cpp
// Function: Backend::logout(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::logout(data_t data)
{
    if(data.empty())
    {
        check_access(ConstNames::Online_Mode);
        object_relational->logout_user(*online_users.begin());
        online_users.clear();
        responding(ConstNames::OK_msg);
    }
    else
        throw Exception(ConstNames::Bad_Request_msg);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rsi, -0x80(%rbp)
movq %rdi, %rax
movq -0x80(%rbp), %rdi
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x78(%rbp)
callq 0x80940
testb $0x1, %al
jne 0x7ab84
jmp 0x7ac2b
movq -0x78(%rbp), %rdi
leaq 0x9d071(%rip), %rsi     # 0x117c00
callq 0x79240
movq -0x78(%rbp), %rdi
movq (%rdi), %rax
movq %rax, -0x98(%rbp)
addq $0x8, %rdi
movq %rdi, -0x90(%rbp)
callq 0x54d40
movq %rax, -0x18(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x54dd0
movq -0x98(%rbp), %rdi
movq (%rax), %rsi
callq 0x73e80
movq -0x90(%rbp), %rdi
callq 0x55630
leaq 0x9c87f(%rip), %rsi     # 0x117460
leaq -0x38(%rbp), %rdi
movq %rdi, -0x88(%rbp)
callq 0x61d0
movq -0x78(%rbp), %rdi
movq -0x88(%rbp), %rsi
callq 0x7a5e0
jmp 0x7ac03
leaq -0x38(%rbp), %rdi
callq 0x6828
jmp 0x7acbd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x6828
jmp 0x7acc6
movb $0x1, -0x69(%rbp)
movl $0x28, %edi
callq 0x6210
movq %rax, -0xa0(%rbp)
leaq 0x9c739(%rip), %rsi     # 0x117380
leaq -0x68(%rbp), %rdi
callq 0x61d0
jmp 0x7ac52
movq -0xa0(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0xabc90
jmp 0x7ac64
movq -0xa0(%rbp), %rdi
movb $0x0, -0x69(%rbp)
leaq 0x8cff2(%rip), %rsi     # 0x107c68
leaq 0x31083(%rip), %rdx     # 0xabd00
callq 0x6710
jmp 0x7accf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x7aca7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x6828
testb $0x1, -0x69(%rbp)
jne 0x7acaf
jmp 0x7acbb
movq -0xa0(%rbp), %rdi
callq 0x6360
jmp 0x7acc6
addq $0xa0, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x6750
nop
// File: mahdibohloul[P]SnapTrip/./Business-Logic/Backend.cpp
// Function: Backend::wallet_post(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::wallet_post(data_t data)
{
    if(!data.empty())
    {
        check_question_mark(data);
        check_access(ConstNames::Online_Mode);
        Database::UserInfo user_info = fill_user_info(data, ConstNames::POST_Wallet_Order);
        if(has_permission_to_deposit(user_info) == ConstNames::Permissible)
            responding(ConstNames::OK_msg);
    }
    else
        throw Exception(ConstNames::Bad_Request_msg);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movq %rsi, -0x110(%rbp)
movq %rdi, %rax
movq -0x110(%rbp), %rdi
movq %rdi, -0x108(%rbp)
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x100(%rbp)
callq 0x80940
testb $0x1, %al
jne 0x7ae56
movq -0x108(%rbp), %rsi
movq -0x100(%rbp), %rdi
callq 0x79140
movq -0x100(%rbp), %rdi
leaq 0x9cecc(%rip), %rsi     # 0x117c00
callq 0x79240
leaq 0x9c8c0(%rip), %rsi     # 0x117600
leaq -0xa0(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0x61d0
movq -0x100(%rbp), %rsi
movq -0x108(%rbp), %rdx
movq -0x118(%rbp), %rcx
leaq -0x80(%rbp), %rdi
callq 0x79710
jmp 0x7ad73
leaq -0xa0(%rbp), %rdi
callq 0x6828
movq -0x100(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x7af20
movb %al, -0x119(%rbp)
jmp 0x7ad97
movb -0x119(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x7ae3a
leaq 0x9c6ae(%rip), %rsi     # 0x117460
leaq -0xd0(%rbp), %rdi
callq 0x61d0
jmp 0x7adc0
movq -0x100(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x7a5e0
jmp 0x7add5
leaq -0xd0(%rbp), %rdi
callq 0x6828
jmp 0x7ae3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x6828
jmp 0x7af0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x7ae48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x6828
jmp 0x7ae48
leaq -0x80(%rbp), %rdi
callq 0x54e70
jmp 0x7af06
leaq -0x80(%rbp), %rdi
callq 0x54e70
jmp 0x7af0f
movb $0x1, -0xf1(%rbp)
movl $0x28, %edi
callq 0x6210
movq %rax, -0x128(%rbp)
leaq 0x9c50b(%rip), %rsi     # 0x117380
leaq -0xf0(%rbp), %rdi
callq 0x61d0
jmp 0x7ae83
movq -0x128(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0xabc90
jmp 0x7ae98
movq -0x128(%rbp), %rdi
movb $0x0, -0xf1(%rbp)
leaq 0x8cdbb(%rip), %rsi     # 0x107c68
leaq 0x30e4c(%rip), %rdx     # 0xabd00
callq 0x6710
jmp 0x7af1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x7aeed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x6828
testb $0x1, -0xf1(%rbp)
jne 0x7aef8
jmp 0x7af04
movq -0x128(%rbp), %rdi
callq 0x6360
jmp 0x7af0f
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
movq -0xa8(%rbp), %rdi
callq 0x6750
nopl (%rax,%rax)
// File: mahdibohloul[P]SnapTrip/./Business-Logic/Backend.cpp
// Function: Backend::has_permission_to_deposit(Database::UserInfo const&)
bool Backend::has_permission_to_deposit(const Database::UserInfo& user_info)
{
    if(user_info.amount <= ConstNames::Minimum_Deposit_Amount)
        throw Exception(ConstNames::Bad_Request_msg);
    object_relational->deposit_in(user_info, *online_users.begin());
    return ConstNames::Permissible;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x10(%rbp), %rax
fldt 0x50(%rax)
fldz
fucompi %st(1), %st
fstp %st(0)
jb 0x7afd6
jmp 0x7af4d
movb $0x1, -0x3d(%rbp)
movl $0x28, %edi
callq 0x6210
movq %rax, -0x58(%rbp)
leaq 0x9c41a(%rip), %rsi     # 0x117380
leaq -0x30(%rbp), %rdi
callq 0x61d0
jmp 0x7af71
movq -0x58(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xabc90
jmp 0x7af80
movq -0x58(%rbp), %rdi
movb $0x0, -0x3d(%rbp)
leaq 0x8ccd9(%rip), %rsi     # 0x107c68
leaq 0x30d6a(%rip), %rdx     # 0xabd00
callq 0x6710
jmp 0x7b022
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x7afc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x6828
testb $0x1, -0x3d(%rbp)
jne 0x7afcb
jmp 0x7afd4
movq -0x58(%rbp), %rdi
callq 0x6360
jmp 0x7b019
movq -0x50(%rbp), %rdi
movq (%rdi), %rax
movq %rax, -0x68(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x60(%rbp)
addq $0x8, %rdi
callq 0x54d40
movq %rax, -0x48(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x54dd0
movq -0x68(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq (%rax), %rdx
callq 0x73ea0
movb $0x1, %al
andb $0x1, %al
addq $0x70, %rsp
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0x6750
nopw %cs:(%rax,%rax)