// File: /workspace/github_cpp_makefile_star2_O2/eiskalteschatten[P]developersnotebook/src/views/ProjectsView.cpp
// Function: ProjectsView::setup_form_sidebar()
void ProjectsView::setup_form_sidebar() {
    const int grid_spacing        = 10;
    const int field_margin_bottom = 10;

    form_grid = gtk_grid_new();
    g_object_set(form_grid, "hexpand", TRUE, NULL);

    gtk_grid_set_column_spacing(GTK_GRID(form_grid), grid_spacing);
    gtk_grid_set_row_spacing(GTK_GRID(form_grid), grid_spacing);
    gtk_container_set_border_width(GTK_CONTAINER(form_grid), grid_spacing);


    // Project Name
    {
        GtkWidget *project_name_label = gtk_label_new("Project Name");
        gtk_widget_set_halign(project_name_label, GTK_ALIGN_START);

        project_name_input = gtk_entry_new();
        g_object_set(project_name_input, "hexpand", TRUE, NULL);
        gtk_widget_set_margin_bottom(project_name_input, field_margin_bottom);

        gtk_grid_insert_row(GTK_GRID(form_grid), 0);
        gtk_grid_insert_row(GTK_GRID(form_grid), 1);
        gtk_grid_attach(GTK_GRID(form_grid), project_name_label, 0, 0, 1, 1);
        gtk_grid_attach(GTK_GRID(form_grid), project_name_input, 0, 1, 1, 1);
    }

    // Start Date
    {
        GtkWidget *start_date_label = gtk_label_new("Start Date");
        gtk_widget_set_halign(start_date_label, GTK_ALIGN_START);

        start_date_input = gtk_calendar_new();
        g_object_set(start_date_input, "hexpand", TRUE, NULL);

        gtk_grid_insert_row(GTK_GRID(form_grid), 2);
        gtk_grid_insert_row(GTK_GRID(form_grid), 3);
        gtk_grid_attach(GTK_GRID(form_grid), start_date_label, 0, 2, 1, 1);
        gtk_grid_attach(GTK_GRID(form_grid), start_date_input, 0, 3, 1, 1);
    }

    // Clear start date selection button
    {
        start_date_clear_button = gtk_button_new_with_label("Clear Selection");
        gtk_widget_set_halign(start_date_clear_button, GTK_ALIGN_END);
        g_object_set(start_date_clear_button, "hexpand", FALSE, NULL);
        gtk_widget_set_margin_bottom(start_date_clear_button, field_margin_bottom);
        g_signal_connect(G_OBJECT(start_date_clear_button), "clicked", G_CALLBACK(clear_start_date_selection), this);

        gtk_grid_insert_row(GTK_GRID(form_grid), 4);
        gtk_grid_attach(GTK_GRID(form_grid), start_date_clear_button, 0, 4, 1, 1);
    }

    // End Date
    {
        GtkWidget *end_date_label = gtk_label_new("End Date");
        gtk_widget_set_halign(end_date_label, GTK_ALIGN_START);

        end_date_input = gtk_calendar_new();
        g_object_set(end_date_input, "hexpand", TRUE, NULL);

        gtk_grid_insert_row(GTK_GRID(form_grid), 5);
        gtk_grid_insert_row(GTK_GRID(form_grid), 6);
        gtk_grid_attach(GTK_GRID(form_grid), end_date_label, 0, 5, 1, 1);
        gtk_grid_attach(GTK_GRID(form_grid), end_date_input, 0, 6, 1, 1);
    }

    // Clear end date selection button
    {
        end_date_clear_button = gtk_button_new_with_label("Clear Selection");
        gtk_widget_set_halign(end_date_clear_button, GTK_ALIGN_END);
        g_object_set(end_date_clear_button, "hexpand", FALSE, NULL);
        gtk_widget_set_margin_bottom(end_date_clear_button, field_margin_bottom);
        g_signal_connect(G_OBJECT(end_date_clear_button), "clicked", G_CALLBACK(clear_end_date_selection), this);

        gtk_grid_insert_row(GTK_GRID(form_grid), 7);
        gtk_grid_attach(GTK_GRID(form_grid), end_date_clear_button, 0, 7, 1, 1);
    }


    // URL
    {
        GtkWidget *url_label = gtk_label_new("URL");
        gtk_widget_set_halign(url_label, GTK_ALIGN_START);

        url_input = gtk_entry_new();
        g_object_set(url_input, "hexpand", TRUE, NULL);
        gtk_widget_set_margin_bottom(url_input, field_margin_bottom);

        gtk_grid_insert_row(GTK_GRID(form_grid), 8);
        gtk_grid_insert_row(GTK_GRID(form_grid), 9);
        gtk_grid_attach(GTK_GRID(form_grid), url_label, 0, 8, 1, 1);
        gtk_grid_attach(GTK_GRID(form_grid), url_input, 0, 9, 1, 1);
    }


    // Notes
    {
        GtkWidget *notes_label = gtk_label_new("Notes");
        gtk_widget_set_halign(notes_label, GTK_ALIGN_START);

        notes_input = gtk_text_view_new();

        GtkWidget *notes_scrolled_window = gtk_scrolled_window_new(NULL, NULL);
        g_object_set(notes_scrolled_window, "hexpand", TRUE, NULL);
        gtk_container_add(GTK_CONTAINER(notes_scrolled_window), notes_input);

        gtk_widget_set_size_request(notes_input, -1, 75);
        gtk_widget_set_size_request(notes_scrolled_window, -1, 75);
        gtk_widget_set_margin_bottom(notes_scrolled_window, field_margin_bottom);

        gtk_grid_insert_row(GTK_GRID(form_grid), 10);
        gtk_grid_insert_row(GTK_GRID(form_grid), 11);
        gtk_grid_attach(GTK_GRID(form_grid), notes_label, 0, 10, 1, 1);
        gtk_grid_attach(GTK_GRID(form_grid), notes_scrolled_window, 0, 11, 1, 1);
    }


    // Is Complete
    {
        is_complete_checkbox = gtk_check_button_new_with_label("Project is completed");
        gtk_widget_set_margin_bottom(is_complete_checkbox, field_margin_bottom);

        gtk_grid_insert_row(GTK_GRID(form_grid), 12);
        gtk_grid_attach(GTK_GRID(form_grid), is_complete_checkbox, 0, 12, 1, 1);
    }


    // Button Grid
    {
        GtkWidget *button_grid = gtk_grid_new();
        g_object_set(button_grid, "hexpand", TRUE, NULL);
        gtk_grid_insert_row(GTK_GRID(button_grid), 0);


        // Create New Project / Save Button
        save_button = gtk_button_new_with_label("Create New Project");
        gtk_widget_set_halign(save_button, GTK_ALIGN_START);
        g_object_set(save_button, "hexpand", FALSE, NULL);
        g_signal_connect(G_OBJECT(save_button), "clicked", G_CALLBACK(save_project), this);

        gtk_grid_insert_column(GTK_GRID(button_grid), 0);
        gtk_grid_attach(GTK_GRID(button_grid), save_button, 0, 0, 1, 1);


        // Delete Button
        delete_button = gtk_button_new_from_icon_name("edit-delete", GTK_ICON_SIZE_BUTTON);
        gtk_widget_set_halign(delete_button, GTK_ALIGN_END);
        g_object_set(delete_button, "hexpand", TRUE, NULL);
        g_signal_connect(G_OBJECT(delete_button), "clicked", G_CALLBACK(delete_project), this);

        gtk_grid_insert_column(GTK_GRID(button_grid), 1);
        gtk_grid_attach(GTK_GRID(button_grid), delete_button, 1, 0, 1, 1);


        // Add the button grid to the form grid
        gtk_grid_insert_row(GTK_GRID(form_grid), 13);
        gtk_grid_attach(GTK_GRID(form_grid), button_grid, 0, 13, 1, 1);
    }


    // Setup the scrollbar
    {
        form_scrolled_window = gtk_scrolled_window_new(NULL, NULL);
        g_object_set(form_scrolled_window, "hexpand", TRUE, NULL);
        g_object_set(form_scrolled_window, "vexpand", TRUE, NULL);
        gtk_widget_set_halign(form_scrolled_window, GTK_ALIGN_FILL);
        gtk_widget_set_valign(form_scrolled_window, GTK_ALIGN_FILL);
        gtk_widget_set_size_request(form_scrolled_window, 300, -1);
        gtk_container_add(GTK_CONTAINER(form_scrolled_window), form_grid);
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
callq 0x8c60
movq %rax, 0x28(%rbx)
leaq 0x14a3b(%rip), %r13     # 0x22226
pushq $0x1
popq %rbp
movq %rax, %rdi
movq %r13, %rsi
movl %ebp, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x8f60
movq 0x28(%rbx), %r14
callq 0x89f0
movq %rax, %r12
movq %r14, %rdi
movq %rax, %rsi
callq 0x8150
pushq $0xa
popq %r15
movq %rax, %rdi
movl %r15d, %esi
callq 0x8210
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq %rax, %rdi
movl %r15d, %esi
callq 0x8470
movq 0x28(%rbx), %r14
callq 0x89e0
movq %rax, 0x8(%rsp)
movq %r14, %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, %rdi
movl %r15d, %esi
callq 0x9050
leaq 0x148f0(%rip), %rdi     # 0x22157
callq 0x8840
movq %rax, %r14
movq %rax, %rdi
movl %ebp, %esi
callq 0x8d60
callq 0x8290
movq %rax, 0x60(%rbx)
movq %rax, %rdi
movq %r13, %rsi
movl %ebp, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x8f60
movq 0x60(%rbx), %rdi
movl %r15d, %esi
callq 0x8c90
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq %rax, %rdi
xorl %esi, %esi
callq 0x82f0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq %rax, %rdi
movl %ebp, %esi
callq 0x82f0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq 0x60(%rbx), %rsi
movq %rax, %rdi
xorl %edx, %edx
movl %ebp, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
leaq 0x14930(%rip), %rdi     # 0x22245
callq 0x8840
movq %rax, %r14
movq %rax, %rdi
movl %ebp, %esi
callq 0x8d60
callq 0x8260
movq %rax, 0x68(%rbx)
movq %rax, %rdi
movq %r13, %rsi
movl %ebp, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x8f60
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
pushq $0x2
popq %r13
movq %rax, %rdi
movl %r13d, %esi
callq 0x82f0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
pushq $0x3
popq %r15
movq %rax, %rdi
movl %r15d, %esi
callq 0x82f0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
movl %r13d, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq 0x68(%rbx), %rsi
movq %rax, %rdi
xorl %edx, %edx
movl %r15d, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
leaq 0x148e1(%rip), %rdi     # 0x222a4
callq 0x80a0
movq %rax, 0x70(%rbx)
movq %rax, %rdi
movl %r13d, %esi
callq 0x8d60
movq 0x70(%rbx), %rdi
leaq 0x14844(%rip), %r15     # 0x22226
movq %r15, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x8f60
movq 0x70(%rbx), %rdi
pushq $0xa
popq %rsi
callq 0x8c90
movq 0x70(%rbx), %rdi
pushq $0x50
popq %rsi
callq 0x8150
leaq 0x14881(%rip), %rsi     # 0x22290
leaq -0x9aa(%rip), %rdx      # 0xd06c
movq %rax, %rdi
movq %rbx, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x82b0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
pushq $0x4
popq %r14
movq %rax, %rdi
movl %r14d, %esi
callq 0x82f0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq 0x70(%rbx), %rsi
movq %rax, %rdi
xorl %edx, %edx
movl %r14d, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
leaq 0x147e4(%rip), %rdi     # 0x22250
callq 0x8840
movq %rax, %r14
movq %rax, %rdi
movl %ebp, %esi
callq 0x8d60
callq 0x8260
movq %rax, 0x78(%rbx)
movq %rax, %rdi
movq %r15, %rsi
movl %ebp, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x8f60
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
pushq $0x5
popq %r13
movq %rax, %rdi
movl %r13d, %esi
callq 0x82f0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
pushq $0x6
popq %r15
movq %rax, %rdi
movl %r15d, %esi
callq 0x82f0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
movl %r13d, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq 0x78(%rbx), %rsi
movq %rax, %rdi
xorl %edx, %edx
movl %r15d, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
leaq 0x1478a(%rip), %rdi     # 0x222a4
callq 0x80a0
movq %rax, 0x80(%rbx)
movq %rax, %rdi
pushq $0x2
popq %rsi
callq 0x8d60
movq 0x80(%rbx), %rdi
leaq 0x146e7(%rip), %r15     # 0x22226
movq %r15, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x8f60
movq 0x80(%rbx), %rdi
pushq $0xa
popq %r13
movl %r13d, %esi
callq 0x8c90
movq 0x80(%rbx), %rdi
pushq $0x50
popq %rsi
callq 0x8150
leaq -0xafe(%rip), %rdx      # 0xd078
movq %rax, %rdi
leaq 0x14710(%rip), %rsi     # 0x22290
movq %rbx, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x82b0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
pushq $0x7
popq %r14
movq %rax, %rdi
movl %r14d, %esi
callq 0x82f0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq 0x80(%rbx), %rsi
movq %rax, %rdi
xorl %edx, %edx
movl %r14d, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
leaq 0x14693(%rip), %rdi     # 0x22269
callq 0x8840
movq %rax, %r14
movq %rax, %rdi
movl %ebp, %esi
callq 0x8d60
callq 0x8290
movq %rax, 0x88(%rbx)
movq %rax, %rdi
movq %r15, %rsi
movl %ebp, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x8f60
movq 0x88(%rbx), %rdi
movl %r13d, %esi
callq 0x8c90
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
pushq $0x8
popq %r13
movq %rax, %rdi
movl %r13d, %esi
callq 0x82f0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
pushq $0x9
popq %r15
movq %rax, %rdi
movl %r15d, %esi
callq 0x82f0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
movl %r13d, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq 0x88(%rbx), %rsi
movq %rax, %rdi
xorl %edx, %edx
movl %r15d, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
leaq 0x14a0b(%rip), %rdi     # 0x226a4
callq 0x8840
movq %rax, 0x10(%rsp)
movq %rax, %rdi
movl %ebp, %esi
callq 0x8d60
callq 0x9000
movq %rax, 0x90(%rbx)
xorl %edi, %edi
xorl %esi, %esi
callq 0x8960
movq %rax, %r14
movq %rax, %rdi
leaq 0x14557(%rip), %rsi     # 0x22226
movl %ebp, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x8f60
movq %r14, %rdi
movq 0x8(%rsp), %rsi
callq 0x8150
movq 0x90(%rbx), %rsi
movq %rax, %rdi
callq 0x8f20
movq 0x90(%rbx), %rdi
pushq $-0x1
popq %r15
pushq $0x4b
popq %r13
movl %r15d, %esi
movl %r13d, %edx
callq 0x90c0
movq %r14, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x90c0
movq %r14, %rdi
pushq $0xa
popq %r15
movl %r15d, %esi
callq 0x8c90
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq %rax, %rdi
movl %r15d, %esi
callq 0x82f0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
pushq $0xb
popq %r13
movq %rax, %rdi
movl %r13d, %esi
callq 0x82f0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq %rax, %rdi
movq 0x10(%rsp), %rsi
xorl %edx, %edx
movl %r15d, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq %rax, %rdi
movq %r14, %rsi
xorl %edx, %edx
movl %r13d, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
leaq 0x14508(%rip), %rdi     # 0x222b4
callq 0x86b0
movq %rax, 0x98(%rbx)
movq %rax, %rdi
movl %r15d, %esi
callq 0x8c90
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
pushq $0xc
popq %r14
movq %rax, %rdi
movl %r14d, %esi
callq 0x82f0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq 0x98(%rbx), %rsi
movq %rax, %rdi
xorl %edx, %edx
movl %r14d, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
callq 0x8c60
movq %rax, %r13
movq %rax, %rdi
leaq 0x14410(%rip), %r14     # 0x22226
movq %r14, %rsi
movl %ebp, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x8f60
movq %r13, %rdi
movq %r12, %rsi
callq 0x8150
movq %rax, %rdi
xorl %esi, %esi
callq 0x82f0
leaq 0x14489(%rip), %rdi     # 0x222c9
callq 0x80a0
movq %rax, 0xa0(%rbx)
movq %rax, %rdi
movl %ebp, %esi
callq 0x8d60
movq 0xa0(%rbx), %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x8f60
movq 0xa0(%rbx), %rdi
pushq $0x50
popq %r14
movq %r14, %rsi
callq 0x8150
leaq -0x22bd(%rip), %rdx     # 0xbbc8
movq %rax, %rdi
leaq 0x14401(%rip), %r15     # 0x22290
movq %r15, %rsi
movq %rbx, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x82b0
movq %r13, %rdi
movq %r12, %rsi
callq 0x8150
movq %rax, %rdi
xorl %esi, %esi
callq 0x8750
movq %r13, %rdi
movq %r12, %rsi
callq 0x8150
movq 0xa0(%rbx), %rsi
movq %rax, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
leaq 0x143b8(%rip), %rdi     # 0x22298
pushq $0x4
popq %rsi
callq 0x8d70
movq %rax, 0xa8(%rbx)
movq %rax, %rdi
pushq $0x2
popq %rsi
callq 0x8d60
movq 0xa8(%rbx), %rdi
leaq 0x1431e(%rip), %rsi     # 0x22226
movl %ebp, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x8f60
movq 0xa8(%rbx), %rdi
movq %r14, %rsi
callq 0x8150
leaq -0x1982(%rip), %rdx     # 0xc5a7
movq %rax, %rdi
movq %r15, %rsi
movq %rbx, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x82b0
movq %r13, %rdi
movq %r12, %rsi
callq 0x8150
movq %rax, %rdi
movl %ebp, %esi
callq 0x8750
movq %r13, %rdi
movq %r12, %rsi
callq 0x8150
movq 0xa8(%rbx), %rsi
movq %rax, %rdi
movl %ebp, %edx
xorl %ecx, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
pushq $0xd
popq %r14
movq %rax, %rdi
movl %r14d, %esi
callq 0x82f0
movq 0x28(%rbx), %rdi
movq %r12, %rsi
callq 0x8150
movq %rax, %rdi
movq %r13, %rsi
xorl %edx, %edx
movl %r14d, %ecx
movl %ebp, %r8d
movl %ebp, %r9d
callq 0x8b00
xorl %edi, %edi
xorl %esi, %esi
callq 0x8960
movq %rax, 0x30(%rbx)
movq %rax, %rdi
leaq 0x1425c(%rip), %rsi     # 0x22226
movl %ebp, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x8f60
movq 0x30(%rbx), %rdi
leaq 0x1424e(%rip), %rsi     # 0x2222e
movl %ebp, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x8f60
movq 0x30(%rbx), %rdi
xorl %esi, %esi
callq 0x8d60
movq 0x30(%rbx), %rdi
xorl %esi, %esi
callq 0x8ec0
movq 0x30(%rbx), %rdi
movl $0x12c, %esi            # imm = 0x12C
pushq $-0x1
popq %rdx
callq 0x90c0
movq 0x30(%rbx), %rdi
movq 0x8(%rsp), %rsi
callq 0x8150
movq 0x28(%rbx), %rsi
movq %rax, %rdi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x8f20