// File: 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
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
movl $0xa, -0xc(%rbp)
movl $0xa, -0x10(%rbp)
callq 0xaea0
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x28(%rax)
movq 0x28(%rax), %rdi
leaq 0x3b5b9(%rip), %rsi     # 0x53459
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x180(%rbp)
callq 0xac20
movq -0x180(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0xa, %esi
callq 0xa2d0
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x178(%rbp)
callq 0xac20
movq -0x178(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0xa, %esi
callq 0xa5f0
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x170(%rbp)
callq 0xac10
movq -0x170(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0xa, %esi
callq 0xb350
leaq 0x3b443(%rip), %rdi     # 0x5338a
callq 0xaa60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0x1, %esi
callq 0xaff0
callq 0xa360
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x60(%rax)
movq 0x60(%rax), %rdi
leaq 0x3b4e0(%rip), %rsi     # 0x53459
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x50(%rbp), %rax
movq 0x60(%rax), %rdi
movl $0xa, %esi
callq 0xaf00
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x168(%rbp)
callq 0xac20
movq -0x168(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
xorl %esi, %esi
callq 0xa400
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x160(%rbp)
callq 0xac20
movq -0x160(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0x1, %esi
callq 0xa400
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x158(%rbp)
callq 0xac20
movq -0x158(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x18(%rbp), %rsi
xorl %ecx, %ecx
movl $0x1, %r9d
movl %ecx, %edx
movl %r9d, %r8d
callq 0xad40
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x150(%rbp)
callq 0xac20
movq -0x150(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x50(%rbp), %rax
movq 0x60(%rax), %rsi
xorl %edx, %edx
movl $0x1, %r9d
movl %r9d, %ecx
movl %r9d, %r8d
callq 0xad40
leaq 0x3b3fc(%rip), %rdi     # 0x53478
callq 0xaa60
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movl $0x1, %esi
callq 0xaff0
callq 0xa330
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x68(%rax)
movq 0x68(%rax), %rdi
leaq 0x3b3ab(%rip), %rsi     # 0x53459
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x148(%rbp)
callq 0xac20
movq -0x148(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0x2, %esi
callq 0xa400
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x140(%rbp)
callq 0xac20
movq -0x140(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0x3, %esi
callq 0xa400
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x138(%rbp)
callq 0xac20
movq -0x138(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x20(%rbp), %rsi
xorl %edx, %edx
movl $0x2, %ecx
movl $0x1, %r9d
movl %r9d, %r8d
callq 0xad40
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x130(%rbp)
callq 0xac20
movq -0x130(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x50(%rbp), %rax
movq 0x68(%rax), %rsi
xorl %edx, %edx
movl $0x3, %ecx
movl $0x1, %r9d
movl %r9d, %r8d
callq 0xad40
leaq 0x3b330(%rip), %rdi     # 0x534d7
callq 0xa0c0
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x70(%rax)
movq 0x70(%rax), %rdi
movl $0x2, %esi
callq 0xaff0
movq -0x50(%rbp), %rax
movq 0x70(%rax), %rdi
leaq 0x3b285(%rip), %rsi     # 0x53459
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x50(%rbp), %rax
movq 0x70(%rax), %rdi
movl $0xa, %esi
callq 0xaf00
movq -0x50(%rbp), %rax
movq 0x70(%rax), %rdi
movl $0x50, %esi
callq 0xa190
movq -0x50(%rbp), %rcx
movq %rax, %rdi
leaq 0x3b2b0(%rip), %rsi     # 0x534c3
leaq -0xefa(%rip), %rdx      # 0x17320
xorl %eax, %eax
movl %eax, %r8d
xorl %r9d, %r9d
callq 0xa380
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x128(%rbp)
callq 0xac20
movq -0x128(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0x4, %esi
callq 0xa400
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x120(%rbp)
callq 0xac20
movq -0x120(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x50(%rbp), %rax
movq 0x70(%rax), %rsi
xorl %edx, %edx
movl $0x4, %ecx
movl $0x1, %r9d
movl %r9d, %r8d
callq 0xad40
leaq 0x3b1e2(%rip), %rdi     # 0x53483
callq 0xaa60
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
movl $0x1, %esi
callq 0xaff0
callq 0xa330
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x78(%rax)
movq 0x78(%rax), %rdi
leaq 0x3b186(%rip), %rsi     # 0x53459
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x118(%rbp)
callq 0xac20
movq -0x118(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0x5, %esi
callq 0xa400
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x110(%rbp)
callq 0xac20
movq -0x110(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0x6, %esi
callq 0xa400
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x108(%rbp)
callq 0xac20
movq -0x108(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x28(%rbp), %rsi
xorl %edx, %edx
movl $0x5, %ecx
movl $0x1, %r9d
movl %r9d, %r8d
callq 0xad40
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x100(%rbp)
callq 0xac20
movq -0x100(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x50(%rbp), %rax
movq 0x78(%rax), %rsi
xorl %edx, %edx
movl $0x6, %ecx
movl $0x1, %r9d
movl %r9d, %r8d
callq 0xad40
leaq 0x3b10b(%rip), %rdi     # 0x534d7
callq 0xa0c0
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x80(%rax)
movq 0x80(%rax), %rdi
movl $0x2, %esi
callq 0xaff0
movq -0x50(%rbp), %rax
movq 0x80(%rax), %rdi
leaq 0x3b057(%rip), %rsi     # 0x53459
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x50(%rbp), %rax
movq 0x80(%rax), %rdi
movl $0xa, %esi
callq 0xaf00
movq -0x50(%rbp), %rax
movq 0x80(%rax), %rdi
movl $0x50, %esi
callq 0xa190
movq -0x50(%rbp), %rcx
movq %rax, %rdi
leaq 0x3b07c(%rip), %rsi     # 0x534c3
leaq -0x10fe(%rip), %rdx     # 0x17350
xorl %eax, %eax
movl %eax, %r8d
xorl %r9d, %r9d
callq 0xa380
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0xf8(%rbp)
callq 0xac20
movq -0xf8(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0x7, %esi
callq 0xa400
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0xf0(%rbp)
callq 0xac20
movq -0xf0(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x50(%rbp), %rax
movq 0x80(%rax), %rsi
xorl %edx, %edx
movl $0x7, %ecx
movl $0x1, %r9d
movl %r9d, %r8d
callq 0xad40
leaq 0x3afc4(%rip), %rdi     # 0x5349c
callq 0xaa60
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
movl $0x1, %esi
callq 0xaff0
callq 0xa360
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x88(%rax)
movq 0x88(%rax), %rdi
leaq 0x3af49(%rip), %rsi     # 0x53459
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x50(%rbp), %rax
movq 0x88(%rax), %rdi
movl $0xa, %esi
callq 0xaf00
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0xe8(%rbp)
callq 0xac20
movq -0xe8(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0x8, %esi
callq 0xa400
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0xe0(%rbp)
callq 0xac20
movq -0xe0(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0x9, %esi
callq 0xa400
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0xd8(%rbp)
callq 0xac20
movq -0xd8(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x30(%rbp), %rsi
xorl %edx, %edx
movl $0x8, %ecx
movl $0x1, %r9d
movl %r9d, %r8d
callq 0xad40
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0xd0(%rbp)
callq 0xac20
movq -0xd0(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x50(%rbp), %rax
movq 0x88(%rax), %rsi
xorl %edx, %edx
movl $0x9, %ecx
movl $0x1, %r9d
movl %r9d, %r8d
callq 0xad40
leaq 0x3b2b3(%rip), %rdi     # 0x538d4
callq 0xaa60
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movl $0x1, %esi
callq 0xaff0
callq 0xb2f0
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x90(%rax)
xorl %eax, %eax
movl %eax, %esi
movq %rsi, %rdi
callq 0xab80
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
leaq 0x3adf3(%rip), %rsi     # 0x53459
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x40(%rbp), %rax
movq %rax, -0xc8(%rbp)
callq 0xac10
movq -0xc8(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x50(%rbp), %rax
movq 0x90(%rax), %rsi
callq 0xb1e0
movq -0x50(%rbp), %rax
movq 0x90(%rax), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0x4b, %edx
callq 0xb3c0
movq -0x40(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0x4b, %edx
callq 0xb3c0
movq -0x40(%rbp), %rdi
movl $0xa, %esi
callq 0xaf00
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0xc0(%rbp)
callq 0xac20
movq -0xc0(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0xa, %esi
callq 0xa400
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0xb8(%rbp)
callq 0xac20
movq -0xb8(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0xb, %esi
callq 0xa400
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0xb0(%rbp)
callq 0xac20
movq -0xb0(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x38(%rbp), %rsi
xorl %edx, %edx
movl $0xa, %ecx
movl $0x1, %r9d
movl %r9d, %r8d
callq 0xad40
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0xa8(%rbp)
callq 0xac20
movq -0xa8(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x40(%rbp), %rsi
xorl %edx, %edx
movl $0xb, %ecx
movl $0x1, %r9d
movl %r9d, %r8d
callq 0xad40
leaq 0x3ad1f(%rip), %rdi     # 0x534e7
callq 0xa890
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x98(%rax)
movq 0x98(%rax), %rdi
movl $0xa, %esi
callq 0xaf00
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0xa0(%rbp)
callq 0xac20
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0xc, %esi
callq 0xa400
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x98(%rbp)
callq 0xac20
movq -0x98(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x50(%rbp), %rax
movq 0x98(%rax), %rsi
xorl %edx, %edx
movl $0xc, %ecx
movl $0x1, %r9d
movl %r9d, %r8d
callq 0xad40
callq 0xaea0
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rdi
leaq 0x3abe3(%rip), %rsi     # 0x53459
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x48(%rbp), %rax
movq %rax, -0x90(%rbp)
callq 0xac20
movq -0x90(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
xorl %esi, %esi
callq 0xa400
leaq 0x3ac46(%rip), %rdi     # 0x534fc
callq 0xa0c0
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0xa0(%rax)
movq 0xa0(%rax), %rdi
movl $0x1, %esi
callq 0xaff0
movq -0x50(%rbp), %rax
movq 0xa0(%rax), %rdi
leaq 0x3ab6d(%rip), %rsi     # 0x53459
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x50(%rbp), %rax
movq 0xa0(%rax), %rdi
movl $0x50, %esi
callq 0xa190
movq -0x50(%rbp), %rcx
movq %rax, %rdi
leaq 0x3aba7(%rip), %rsi     # 0x534c3
leaq -0x3cb3(%rip), %rdx     # 0x14c70
xorl %eax, %eax
movl %eax, %r8d
xorl %r9d, %r9d
callq 0xa380
movq -0x48(%rbp), %rax
movq %rax, -0x88(%rbp)
callq 0xac20
movq -0x88(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
xorl %esi, %esi
callq 0xa930
movq -0x48(%rbp), %rax
movq %rax, -0x80(%rbp)
callq 0xac20
movq -0x80(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x50(%rbp), %rax
movq 0xa0(%rax), %rsi
xorl %ecx, %ecx
movl $0x1, %r9d
movl %ecx, %edx
movl %r9d, %r8d
callq 0xad40
leaq 0x3ab32(%rip), %rdi     # 0x534cb
movl $0x4, %esi
callq 0xb000
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0xa8(%rax)
movq 0xa8(%rax), %rdi
movl $0x2, %esi
callq 0xaff0
movq -0x50(%rbp), %rax
movq 0xa8(%rax), %rdi
leaq 0x3aa85(%rip), %rsi     # 0x53459
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x50(%rbp), %rax
movq 0xa8(%rax), %rdi
movl $0x50, %esi
callq 0xa190
movq -0x50(%rbp), %rcx
movq %rax, %rdi
leaq 0x3aabc(%rip), %rsi     # 0x534c3
leaq -0x2c0e(%rip), %rdx     # 0x15e00
xorl %eax, %eax
movl %eax, %r8d
xorl %r9d, %r9d
callq 0xa380
movq -0x48(%rbp), %rax
movq %rax, -0x78(%rbp)
callq 0xac20
movq -0x78(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0x1, %esi
callq 0xa930
movq -0x48(%rbp), %rax
movq %rax, -0x70(%rbp)
callq 0xac20
movq -0x70(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x50(%rbp), %rax
movq 0xa8(%rax), %rsi
movl $0x1, %r9d
xorl %ecx, %ecx
movl %r9d, %edx
movl %r9d, %r8d
callq 0xad40
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x68(%rbp)
callq 0xac20
movq -0x68(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movl $0xd, %esi
callq 0xa400
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x60(%rbp)
callq 0xac20
movq -0x60(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x48(%rbp), %rsi
xorl %edx, %edx
movl $0xd, %ecx
movl $0x1, %r9d
movl %r9d, %r8d
callq 0xad40
xorl %eax, %eax
movl %eax, %esi
movq %rsi, %rdi
callq 0xab80
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x30(%rax)
movq 0x30(%rax), %rdi
leaq 0x3a959(%rip), %rsi     # 0x53459
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x50(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0x3a942(%rip), %rsi     # 0x53461
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0xb230
movq -0x50(%rbp), %rax
movq 0x30(%rax), %rdi
xorl %esi, %esi
callq 0xaff0
movq -0x50(%rbp), %rax
movq 0x30(%rax), %rdi
xorl %esi, %esi
callq 0xb190
movq -0x50(%rbp), %rax
movq 0x30(%rax), %rdi
movl $0x12c, %esi            # imm = 0x12C
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xb3c0
movq -0x50(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x58(%rbp)
callq 0xac10
movq -0x58(%rbp), %rdi
movq %rax, %rsi
callq 0xa190
movq %rax, %rdi
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rsi
callq 0xb1e0
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
nopw (%rax,%rax)