LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/views/ProjectsView.cpp
// Function: ProjectsView::setup_list_store()
void ProjectsView::setup_list_store() {
    GtkTreeIter tree_iter;
    ProjectsModel all_projects;

    list_store = gtk_list_store_new(N_COLUMNS,
                                    G_TYPE_STRING,
                                    G_TYPE_STRING,
                                    G_TYPE_STRING,
                                    G_TYPE_STRING,
                                    G_TYPE_STRING,
                                    G_TYPE_STRING,
                                    G_TYPE_BOOLEAN,
                                    G_TYPE_STRING,
                                    G_TYPE_STRING);


    all_projects.select_all();
    const tableVector &contents = all_projects.get_full_table();

    for (auto const &row_map : contents) {
        ProjectsModel *row = new ProjectsModel(row_map);
        row->truncate_notes();
        append_to_list_store(&tree_iter);
        set_list_store(row, &tree_iter);
        delete row;
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x170, %rsp            # imm = 0x170
movq %rdi, %rbx
leaq 0x28(%rsp), %rdi
callq 0x2673c
movl $0x40, %r10d
movl $0x40, %esi
movl $0x40, %edx
movl $0x40, %ecx
movl $0x40, %r8d
movl $0x40, %r9d
movl $0x9, %edi
xorl %eax, %eax
pushq %r10
pushq %r10
pushq $0x14
pushq %r10
callq 0x88e0
addq $0x20, %rsp
movq %rax, 0x38(%rbx)
leaq 0x28(%rsp), %rdi
callq 0x178fe
movq 0x68(%rsp), %r14
movq 0x70(%rsp), %r13
cmpq %r13, %r14
je 0x115d6
leaq 0x8(%rsp), %r15
movl $0x148, %edi            # imm = 0x148
callq 0x81a0
movq %rax, %r12
movq %rax, %rdi
movq %r14, %rsi
callq 0x268f0
movq %r12, %rdi
callq 0x27904
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1161a
movq %rbx, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0xf04a
movq (%r12), %rax
movq %r12, %rdi
callq *0x10(%rax)
addq $0x30, %r14
cmpq %r13, %r14
jne 0x1158a
leaq 0x28(%rsp), %rdi
callq 0x26d92
addq $0x170, %rsp            # imm = 0x170
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x11605
movq %rax, %rbx
movl $0x148, %esi            # imm = 0x148
movq %r12, %rdi
callq 0x8170
jmp 0x11608
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x26d92
movq %rbx, %rdi
callq 0x87b0
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/views/ProjectsView.cpp
// Function: ProjectsView::select_row_in_list_view(char const*)
void ProjectsView::select_row_in_list_view(const gchar *id) {
    GtkTreeIter tree_iter;
    gboolean has_next = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(list_store), &tree_iter);

    while (has_next) {
        gchar *id_col;

        gtk_tree_model_get(GTK_TREE_MODEL(list_store), &tree_iter,
                           ID_COLUMN, &id_col,
                           -1);

        if (strcmp(id_col, id) == 0) {
            select_row_in_list_view(&tree_iter);
            break;
        }

        g_free(id_col);

        has_next = gtk_tree_model_iter_next(GTK_TREE_MODEL(list_store), &tree_iter);
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movq 0x38(%rdi), %r12
callq 0x8520
movq %rax, %r15
movq %r12, %rdi
movq %rax, %rsi
callq 0x8150
leaq 0x8(%rsp), %rsi
movq %rax, %rdi
callq 0x8160
testl %eax, %eax
je 0x116f5
leaq 0x8(%rsp), %r12
movq %rsp, %r13
movq 0x38(%rbx), %rdi
movq %r15, %rsi
callq 0x8150
movq %rax, %rdi
movq %r12, %rsi
xorl %edx, %edx
movq %r13, %rcx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
xorl %eax, %eax
callq 0x8850
movq (%rsp), %rbp
movq %rbp, %rdi
movq %r14, %rsi
callq 0x8b00
testl %eax, %eax
je 0x116e8
movq %rbp, %rdi
callq 0x90c8
movq 0x38(%rbx), %rdi
movq %r15, %rsi
callq 0x8150
movq %rax, %rdi
movq %r12, %rsi
callq 0x8720
testl %eax, %eax
jne 0x1168c
jmp 0x116f5
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0xf51e
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/views/AbstractView.cpp
// Function: AbstractView::sort_by_string(_GtkTreeModel*, _GtkTreeIter*, _GtkTreeIter*, void*)
gint AbstractView::sort_by_string(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data) {
    gint ret = 0;
    gchar *string1;
    gchar *string2;
    gint sortcol = GPOINTER_TO_INT(user_data);

    gtk_tree_model_get(model, a, sortcol, &string1, -1);
    gtk_tree_model_get(model, b, sortcol, &string2, -1);

    if (
        (string1 == NULL || string2 == NULL) &&
        !(string1 == NULL && string2 == NULL)
    ) {
        ret = (string1 == NULL) ? -1 : 1;
    }
    else if (!(string1 == NULL && string2 == NULL)) {
        ret = g_utf8_collate(string1, string2);
    }

    g_free(string1);
    g_free(string2);

    return ret;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rcx, %r14
movq %rdx, %r15
movq %rdi, %r12
xorl %ebx, %ebx
leaq 0x10(%rsp), %r13
movl %r14d, %edx
movq %r13, %rcx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
xorl %eax, %eax
callq 0x8850
leaq 0x8(%rsp), %rbp
movq %r12, %rdi
movq %r15, %rsi
movl %r14d, %edx
movq %rbp, %rcx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
xorl %eax, %eax
callq 0x8850
movq (%r13), %r14
testq %r14, %r14
sete %al
movq (%rbp), %rsi
testq %rsi, %rsi
sete %cl
cmpb %cl, %al
je 0x11c72
xorl %ebx, %ebx
cmpq $0x1, %r14
sbbl %ebx, %ebx
orl $0x1, %ebx
jmp 0x11c84
movq %r14, %rax
orq %rsi, %rax
je 0x11c84
movq %r14, %rdi
callq 0x9040
movl %eax, %ebx
movq %r14, %rdi
callq 0x90c8
movq 0x8(%rsp), %rdi
callq 0x90c8
movl %ebx, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/views/AbstractView.cpp
// Function: AbstractView::sort_by_date(_GtkTreeModel*, _GtkTreeIter*, _GtkTreeIter*, void*)
gint AbstractView::sort_by_date(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data) {
    gchar *string_char1;
    gchar *string_char2;
    gint sortcol = GPOINTER_TO_INT(user_data);

    gtk_tree_model_get(model, a, sortcol, &string_char1, -1);
    gtk_tree_model_get(model, b, sortcol, &string_char2, -1);

    std::string string1 = std::string(string_char1);
    std::string string2 = std::string(string_char2);

    g_free(string_char1);
    g_free(string_char2);

    std::tm tm1 = get_date_from_string(&string1);
    std::tm tm2 = get_date_from_string(&string2);

    return difftime(mktime(&tm1), mktime(&tm2)) < 0 ? -1 : 1;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc0, %rsp
movq %rcx, %rbx
movq %rdx, %r14
movq %rdi, %r15
leaq 0x8(%rsp), %r12
movl %ebx, %edx
movq %r12, %rcx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
xorl %eax, %eax
callq 0x8850
movq %rsp, %r13
movq %r15, %rdi
movq %r14, %rsi
movl %ebx, %edx
movq %r13, %rcx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
xorl %eax, %eax
callq 0x8850
movq (%r12), %rsi
leaq 0x30(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0xd42c
movq (%r13), %rsi
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0xd42c
movq 0x8(%rsp), %rdi
callq 0x90c8
movq (%rsp), %rdi
callq 0x90c8
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x11e9e
leaq 0x88(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x11e9e
leaq 0x50(%rsp), %rdi
callq 0x84f0
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x84f0
movq %rax, %r14
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11e09
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x8170
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11e24
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x8170
movq %rbx, %rdi
movq %r14, %rsi
callq 0x8400
xorpd %xmm1, %xmm1
xorl %eax, %eax
ucomisd %xmm0, %xmm1
setbe %al
leal -0x1(,%rax,2), %eax
addq $0xc0, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x11e5d
jmp 0x11e5d
movq %rax, %rbx
jmp 0x11e7b
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11e7b
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x8170
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11e96
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x8170
movq %rbx, %rdi
callq 0x87b0
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/views/AbstractView.cpp
// Function: AbstractView::get_date_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*)
std::tm AbstractView::get_date_from_string(std::string *date_str) {
    std::tm date_tm = {};
    std::stringstream ss(*date_str);
    ss >> std::get_time(&date_tm, Constants::default_date_format.c_str());
    return date_tm;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x188, %rsp            # imm = 0x188
movq %rdi, %rbx
xorps %xmm0, %xmm0
movups %xmm0, 0x20(%rdi)
movups %xmm0, 0x10(%rdi)
movups %xmm0, (%rdi)
movq $0x0, 0x30(%rdi)
movq %rsp, %r14
movq %r14, %rdi
movl $0x18, %edx
callq 0x90a0
movq 0x26388(%rip), %rdx     # 0x38260
movq %r14, %rdi
movq %rbx, %rsi
callq 0x122c7
movq 0x250c6(%rip), %rsi     # 0x36fb0
movq %rsp, %rdi
callq 0x89a0
leaq 0x80(%rsp), %rdi
callq 0x88d0
movq %rbx, %rax
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r14
retq
movq %rax, %rbx
movq 0x25099(%rip), %rsi     # 0x36fb0
movq %rsp, %rdi
callq 0x89a0
leaq 0x80(%rsp), %rdi
callq 0x88d0
movq %rbx, %rdi
callq 0x87b0
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/views/DashboardView.cpp
// Function: projects_ending_soon_row_activated(_GtkTreeView*, _GtkTreePath*, _GtkTreeViewColumn*, DashboardView*)
void projects_ending_soon_row_activated(GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *col, DashboardView *dv) {
    GtkTreeModel *model = gtk_tree_view_get_model(tree_view);
    GtkTreeIter tree_iter;
    MainWindow *mw = static_cast<MainWindow*>(dv->main_window_obj);

    if (gtk_tree_model_get_iter(model, &tree_iter, path)) {
        GtkWidget *stack = mw->get_stack();
        gchar *id;
        gtk_tree_model_get(model, &tree_iter, ID_COLUMN, &id, -1);

        GtkWidget *stack_child_widget = gtk_stack_get_child_by_name(GTK_STACK(stack), "projects");
        gtk_stack_set_visible_child(GTK_STACK(stack), stack_child_widget);

        mw->get_projects_view()->select_row_in_list_view(id);

        g_free(id);
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x30, %rsp
movq %rcx, %rbx
movq %rsi, %r14
callq 0x84b0
movq %rax, %r15
movq 0x28(%rbx), %r13
leaq 0x10(%rsp), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x8d40
testl %eax, %eax
je 0x124bd
movq 0x30(%r13), %r14
leaq 0x10(%rsp), %rsi
leaq 0x8(%rsp), %rbx
movq %r15, %rdi
xorl %edx, %edx
movq %rbx, %rcx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
xorl %eax, %eax
callq 0x8850
callq 0x89e0
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x8150
leaq 0x16f82(%rip), %rsi     # 0x2940a
movq %rax, %rdi
callq 0x8e50
movq %rax, %r12
movq %r14, %rdi
movq %r15, %rsi
callq 0x8150
movq %rax, %rdi
movq %r12, %rsi
callq 0x8930
movq 0x48(%r13), %rdi
movq (%rbx), %rsi
callq 0x11648
movq (%rbx), %rdi
callq 0x90c8
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
nop
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/db/SqliteConnectionManager.cpp
// Function: SqliteConnectionManager::SqliteConnectionManager()
SqliteConnectionManager::SqliteConnectionManager() {
    int connection = sqlite3_open(Constants::path_to_db.c_str(), &db);

    if (connection) {
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
        return;
    }
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq $0x0, (%rdi)
movq 0x2563e(%rip), %rdi     # 0x384a0
movq %rbx, %rsi
callq 0x8450
testl %eax, %eax
jne 0x12e70
popq %rbx
retq
movq %rbx, %rdi
callq 0x90d0
jmp 0x12e6e
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/windows/MainWindow.cpp
// Function: MainWindow::setup_css()
void MainWindow::setup_css() {
    Css css("dark", path_to_exec);

    css_provider = gtk_css_provider_new();

    gtk_css_provider_load_from_path(css_provider, css.get_path().c_str(), NULL);
    gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), GTK_STYLE_PROVIDER(css_provider), GTK_STYLE_PROVIDER_PRIORITY_USER);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x100, %rsp            # imm = 0x100
movq %rdi, %rbx
leaq 0x50(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x14fd6(%rip), %rsi     # 0x2964d
leaq 0x14fd3(%rip), %rdx     # 0x29651
leaq 0x40(%rsp), %rdi
callq 0xd588
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x20(%rsp), %rdi
callq 0xd4f2
leaq 0x60(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0x20(%rsp), %rdx
callq 0xe4d0
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x146d0
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8170
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x146e7
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x8170
callq 0x86a0
movq %rax, %r14
movq %rax, 0x38(%rbx)
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0xc0(%rsp), %rsi
movq 0xc8(%rsp), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0xd4f2
movq (%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x8af0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1473b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8170
callq 0x8e20
movq %rax, %r14
movq 0x38(%rbx), %rbx
callq 0x85c0
movq %rbx, %rdi
movq %rax, %rsi
callq 0x8150
movq %r14, %rdi
movq %rax, %rsi
movl $0x320, %edx            # imm = 0x320
callq 0x8470
leaq 0x60(%rsp), %rdi
callq 0xe660
addq $0x100, %rsp            # imm = 0x100
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x147d6
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8170
jmp 0x147d6
jmp 0x147d3
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x147ba
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8170
jmp 0x147ba
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x147e0
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x8170
jmp 0x147e0
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0xe660
movq %rbx, %rdi
callq 0x87b0
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/windows/MainWindow.cpp
// Function: MainWindow::save_and_close_window(_GtkWidget*)
void MainWindow::save_and_close_window(GtkWidget *window) {
    int width;
    int height;
    PreferencesModel *preferences_model = new PreferencesModel();

    if (gtk_window_is_maximized(GTK_WINDOW(window))) {
        preferences_model->set_window_maximized(true, false);
    }
    else {
        gtk_window_get_size(GTK_WINDOW(window), &width, &height);

        preferences_model->set_window_width(width, false);
        preferences_model->set_window_height(height, false);
        preferences_model->set_window_maximized(false, false);
    }

    preferences_model->save_all();

    gtk_widget_destroy(window);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x68, %edi
callq 0x81a0
movq %rax, %r14
movq %rax, %rdi
callq 0x280e4
callq 0x8f40
movq %rax, %r15
movq %rbx, %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, %rdi
callq 0x8f50
testl %eax, %eax
je 0x14af1
movq %r14, %rdi
movl $0x1, %esi
jmp 0x14b31
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8150
leaq 0x4(%rsp), %r15
movq %rsp, %r12
movq %rax, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x85a0
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x281cc
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x28260
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x282f4
movq (%r14), %rax
movq %r14, %rdi
callq *0x18(%rax)
movq %rbx, %rdi
callq 0x8180
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
movl $0x68, %esi
movq %r14, %rdi
callq 0x8170
movq %rbx, %rdi
callq 0x87b0
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/windows/MenuBar.cpp
// Function: MenuBar::MenuBar(MainWindow*)
MenuBar::MenuBar(MainWindow *new_main_window_obj) {
    main_window_obj  = new_main_window_obj;
    main_window      = main_window_obj->get_window();
    primary_mask_key = GDK_CONTROL_MASK;

    // Override the primary modifier key for macOS
    #ifdef __APPLE__
        primary_mask_key = GDK_META_MASK;
    #endif

    menubar = gtk_menu_bar_new();

    // Accelerators
    accel_group = gtk_accel_group_new();
    gtk_window_add_accel_group(GTK_WINDOW(main_window), accel_group);

    setup_file_menu();
    #ifdef __APPLE__
        setup_edit_menu();
    #endif
    setup_view_menu();
    setup_help_menu();
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq %rsi, (%rdi)
movq 0x20(%rsi), %rax
movq %rax, 0x8(%rdi)
movl $0x4, 0x10(%rdi)
callq 0x8fd0
movq %rax, 0x20(%rbx)
callq 0x8b40
movq %rax, 0x18(%rbx)
movq 0x8(%rbx), %r14
callq 0x8f40
movq %r14, %rdi
movq %rax, %rsi
callq 0x8150
movq 0x18(%rbx), %rsi
movq %rax, %rdi
callq 0x8340
movq %rbx, %rdi
callq 0x153e0
movq %rbx, %rdi
callq 0x1561c
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x15768
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/windows/MenuBar.cpp
// Function: MenuBar::setup_view_menu()
void MenuBar::setup_view_menu() {
    GtkWidget *view_menu = gtk_menu_new();
    GtkWidget *view_mi   = gtk_menu_item_new_with_label("View");

    dashboard_mi = gtk_menu_item_new_with_label("Dashboard");
    projects_mi  = gtk_menu_item_new_with_label("Projects");

    // Setup submenu
    gtk_menu_item_set_submenu(GTK_MENU_ITEM(view_mi), view_menu);

    // Setup menu items

    // Dashboard
    {
        gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), dashboard_mi);
        gtk_widget_add_accelerator(dashboard_mi, "activate", accel_group, GDK_KEY_1, primary_mask_key, GTK_ACCEL_VISIBLE);
        g_signal_connect(G_OBJECT(dashboard_mi), "activate", G_CALLBACK(switch_stack_dashboard), this);
    }

    // Projects
    {
        gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), projects_mi);
        gtk_widget_add_accelerator(projects_mi, "activate", accel_group, GDK_KEY_2, primary_mask_key, GTK_ACCEL_VISIBLE);
        g_signal_connect(G_OBJECT(projects_mi), "activate", G_CALLBACK(switch_stack_projects), this);
    }

    #ifdef __APPLE__
        GtkWidget *separator_mi_1 = gtk_separator_menu_item_new();
        gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), separator_mi_1);
    #endif

    // Add the menu to the menu shell
    gtk_menu_shell_append(GTK_MENU_SHELL(menubar), view_mi);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdi, %rbx
callq 0x87a0
movq %rax, %r12
leaq 0x14095(%rip), %rdi     # 0x296cc
callq 0x8da0
movq %rax, %r14
leaq 0x14023(%rip), %rdi     # 0x29669
callq 0x8da0
movq %rax, 0x40(%rbx)
leaq 0x1401d(%rip), %rdi     # 0x29673
callq 0x8da0
movq %rax, 0x48(%rbx)
callq 0x8350
movq %r14, %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, %rdi
movq %r12, %rsi
callq 0x8a80
callq 0x8270
movq %rax, %r15
movq %r12, %rdi
movq %rax, %rsi
callq 0x8150
movq 0x40(%rbx), %rsi
movq %rax, %rdi
callq 0x8830
movq 0x40(%rbx), %rdi
movq 0x18(%rbx), %rdx
movl 0x10(%rbx), %r8d
leaq 0x13a42(%rip), %r13     # 0x290ee
movq %r13, %rsi
movl $0x31, %ecx
movl $0x1, %r9d
callq 0x8980
movq 0x40(%rbx), %rdi
movl $0x50, %esi
callq 0x8150
leaq -0x37d(%rip), %rdx      # 0x15357
movq %rax, %rdi
movq %r13, %rsi
movq %rbx, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x82a0
movq %r12, %rdi
movq %r15, %rsi
callq 0x8150
movq 0x48(%rbx), %rsi
movq %rax, %rdi
callq 0x8830
movq 0x48(%rbx), %rdi
movq 0x18(%rbx), %rdx
movl 0x10(%rbx), %r8d
movq %r13, %rsi
movl $0x32, %ecx
movl $0x1, %r9d
callq 0x8980
movq 0x48(%rbx), %rdi
movl $0x50, %esi
callq 0x8150
leaq -0x3cd(%rip), %rdx      # 0x15366
movq %rax, %rdi
movq %r13, %rsi
movq %rbx, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x82a0
movq 0x20(%rbx), %rdi
movq %r15, %rsi
callq 0x8150
movq %rax, %rdi
movq %r14, %rsi
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x8830
nop
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/windows/MenuBar.cpp
// Function: MenuBar::setup_help_menu()
void MenuBar::setup_help_menu() {
    GtkWidget *help_menu            = gtk_menu_new();
    about_mi                        = gtk_menu_item_new_with_label("About");
    GtkWidget *release_notes_mi     = gtk_menu_item_new_with_label("Release Notes");
    // GtkWidget *check_for_updates_mi = gtk_menu_item_new_with_label("Check for Updates");
    help_mi                         = gtk_menu_item_new_with_label("Help");

    // Setup submenu
    gtk_menu_item_set_submenu(GTK_MENU_ITEM(help_mi), help_menu);

    // Setup menu items

    // Check for updates
    // {
    //     gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), check_for_updates_mi);
    // }

    // Release Notes
    {
        gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), release_notes_mi);
        g_signal_connect(G_OBJECT(release_notes_mi), "activate", G_CALLBACK(ReleaseNotesWindow::activate), main_window_obj);
    }

    // About
    {
        gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), about_mi);
        g_signal_connect(G_OBJECT(about_mi), "activate", G_CALLBACK(AboutDialog::activate), main_window_obj);
    }

    // Add the menu to the menu shell
    gtk_menu_shell_append(GTK_MENU_SHELL(menubar), help_mi);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
callq 0x87a0
movq %rax, %r14
leaq 0x13f4f(%rip), %rdi     # 0x296d1
callq 0x8da0
movq %rax, 0x30(%rbx)
leaq 0x13f00(%rip), %rdi     # 0x29692
callq 0x8da0
movq %rax, %r12
leaq 0x13f36(%rip), %rdi     # 0x296d7
callq 0x8da0
movq %rax, %r15
movq %rax, 0x38(%rbx)
callq 0x8350
movq %r15, %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, %rdi
movq %r14, %rsi
callq 0x8a80
callq 0x8270
movq %rax, %r15
movq %r14, %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, %rdi
movq %r12, %rsi
callq 0x8830
movl $0x50, %esi
movq %r12, %rdi
callq 0x8150
movq (%rbx), %rcx
leaq 0x138f1(%rip), %r12     # 0x290ee
leaq -0xc10(%rip), %rdx      # 0x14bf4
movq %rax, %rdi
movq %r12, %rsi
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x82a0
movq %r14, %rdi
movq %r15, %rsi
callq 0x8150
movq 0x30(%rbx), %rsi
movq %rax, %rdi
callq 0x8830
movq 0x30(%rbx), %rdi
movl $0x50, %esi
callq 0x8150
movq (%rbx), %rcx
leaq -0x18a4(%rip), %rdx     # 0x13fa0
movq %rax, %rdi
movq %r12, %rsi
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x82a0
movq 0x20(%rbx), %rdi
movq %r15, %rsi
callq 0x8150
movq 0x38(%rbx), %rsi
movq %rax, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x8830
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/windows/MenuBar.cpp
// Function: MenuBar::setup_edit_menu()
void MenuBar::setup_edit_menu() {
    GtkWidget *edit_menu = gtk_menu_new();
    // preferences_mi       = gtk_menu_item_new_with_label("Preferences");
    GtkWidget *edit_mi   = gtk_menu_item_new_with_label("Edit");

    // Setup submenu
    gtk_menu_item_set_submenu(GTK_MENU_ITEM(edit_mi), edit_menu);

    // Setup menu items
    // gtk_menu_shell_append(GTK_MENU_SHELL(edit_menu), preferences_mi);
    // gtk_widget_add_accelerator(preferences_mi, "activate", accel_group, GDK_KEY_comma, primary_mask_key, GTK_ACCEL_VISIBLE);

    // Add the menu to the menu shell
    gtk_menu_shell_append(GTK_MENU_SHELL(menubar), edit_mi);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
callq 0x87a0
movq %rax, %r14
leaq 0x13e36(%rip), %rdi     # 0x296c7
callq 0x8da0
movq %rax, %r15
callq 0x8350
movq %r15, %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, %rdi
movq %r14, %rsi
callq 0x8a80
movq 0x20(%rbx), %rbx
callq 0x8270
movq %rbx, %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, %rdi
movq %r15, %rsi
popq %rbx
popq %r14
popq %r15
jmp 0x8830
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/models/ProjectsModel.cpp
// Function: ProjectsModel::set_is_complete(bool, bool)
void ProjectsModel::set_is_complete(const bool new_is_complete, bool update_db) {
    int int_value = new_is_complete ? 1 : 0;
    is_complete   = new_is_complete;

    if (update_db) {
        update_single_int("is_complete", int_value);
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x30, %rsp
movl %esi, 0xc(%rsp)
movb %sil, 0x100(%rdi)
testl %edx, %edx
je 0x271f2
movq %rdi, %rbx
leaq 0x20(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2142(%rip), %rsi      # 0x292f9
leaq 0x2146(%rip), %rdx      # 0x29304
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0xd588
leaq 0xc(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16c28
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x271f2
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x8170
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x27216
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x8170
movq %rbx, %rdi
callq 0x87b0
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/models/ProjectsModel.cpp
// Function: ProjectsModel::truncate_notes()
void ProjectsModel::truncate_notes() {
    notes = std::regex_replace(notes, std::regex("\\n"), " ");
    notes = std::regex_replace(notes, std::regex("\\r"), "");

    if (notes != "" && notes.length() >= 50) {
        notes = notes.substr(0, 47) + "...";
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdi, %r14
leaq 0x2dc1(%rip), %rsi      # 0x2a6da
leaq 0x28(%rsp), %rbx
movq %rbx, %rdi
movl $0x10, %edx
callq 0x182b8
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
movq $0x0, -0x8(%r12)
movb $0x0, (%r12)
movq 0xe0(%r14), %rsi
movq 0xe8(%r14), %rdx
addq %rsi, %rdx
movl $0x0, (%rsp)
leaq 0x1c15(%rip), %r8       # 0x29577
leaq 0x8(%rsp), %rdi
movl $0x1, %r9d
movq %rbx, %rcx
callq 0x23c3b
leaq 0xe0(%r14), %rbx
leaq 0x8(%rsp), %r15
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8630
movq (%r15), %rdi
cmpq %r12, %rdi
je 0x279a1
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x8170
leaq 0x28(%rsp), %rdi
callq 0x18320
leaq 0x2d2b(%rip), %rsi      # 0x2a6dd
leaq 0x28(%rsp), %r15
movq %r15, %rdi
movl $0x10, %edx
callq 0x182b8
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
movq $0x0, 0x8(%rdi)
movb $0x0, 0x10(%rdi)
movq 0xe0(%r14), %rsi
movq 0xe8(%r14), %rdx
addq %rsi, %rdx
movl $0x0, (%rsp)
leaq 0x1f5e(%rip), %r8       # 0x29955
movq %r15, %rcx
xorl %r9d, %r9d
callq 0x23c3b
leaq 0x8(%rsp), %r15
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8630
movq (%r15), %rdi
cmpq %r12, %rdi
je 0x27a27
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x8170
leaq 0x28(%rsp), %rdi
callq 0x18320
leaq 0x1f1d(%rip), %rsi      # 0x29955
movq %rbx, %rdi
callq 0x8c00
testl %eax, %eax
je 0x27afe
cmpq $0x32, 0xe8(%r14)
jb 0x27afe
leaq 0x28(%rsp), %r14
movl $0x2f, %ecx
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x8ce0
leaq 0x2c6c(%rip), %rsi      # 0x2a6e0
movq %r14, %rdi
callq 0x87f0
movq %r12, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x27a9f
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x27aa7
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %r14
movq %rdx, 0x8(%r14)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x8630
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x27ae3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x8170
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x27afe
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x8170
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x27b50
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x8170
jmp 0x27b50
jmp 0x27b2c
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x27b46
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x8170
leaq 0x28(%rsp), %rdi
callq 0x18320
movq %rbx, %rdi
callq 0x87b0
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/models/PreferencesModel.cpp
// Function: PreferencesModel::setup()
void PreferencesModel::setup() {
	table_schema = &SqliteSchema::preferences_table;

    select_one();

	if (get_window_width() == -1) {
		set_window_width(default_window_width, true);
	}

	if (get_window_height() == -1) {
		set_window_height(default_window_height, true);
	}
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
leaq 0x1046d(%rip), %rax     # 0x385a0
movq %rax, 0x8(%rdi)
callq 0x173c4
cmpl $-0x1, 0x5c(%rbx)
jne 0x28156
leaq 0x25f3(%rip), %rsi      # 0x2a73c
movq %rbx, %rdi
movl $0x1, %edx
callq 0x281cc
cmpl $-0x1, 0x60(%rbx)
je 0x2815e
popq %rbx
retq
leaq 0x25db(%rip), %rsi      # 0x2a740
movq %rbx, %rdi
movl $0x1, %edx
popq %rbx
jmp 0x28260
nop
// File: /workspace/github_cpp_makefile_star2_O3/eiskalteschatten[P]developersnotebook/src/models/PreferencesModel.cpp
// Function: PreferencesModel::set_window_maximized(bool, bool)
void PreferencesModel::set_window_maximized(const bool new_maximized, bool update_db) {
    int int_value    = new_maximized ? 1 : 0;
    window_maximized = new_maximized;

    if (update_db) {
        update_single_int("window_maximized", int_value);
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x30, %rsp
movl %esi, 0xc(%rsp)
movb %sil, 0x64(%rdi)
testl %edx, %edx
je 0x28357
movq %rdi, %rbx
leaq 0x20(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1200(%rip), %rsi      # 0x2951c
leaq 0x1209(%rip), %rdx      # 0x2952c
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0xd588
leaq 0xc(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16c28
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x28357
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x8170
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x2837b
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x8170
movq %rbx, %rdi
callq 0x87b0
nop
// File: /workspace/github_cpp_makefile_star2_O3/martinda3[P]Compiler/src/ASifState.cpp
// Function: toyc::ASifState::ASifState(toyc::ASexpression*, toyc::ASstatement*, toyc::ASstatement*)
ASifState::ASifState(ASexpression* oper1, ASstatement* oper2, ASstatement* oper3)
	{
		op1 = oper1;
		op2 = oper2;
		op3 = oper3;
		hasop = true;
		setType(IFstate);
	}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rcx, %r14
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %rbx
callq 0x1ae1c
leaq 0x2cebb(%rip), %rax     # 0x37b50
movq %rax, (%rbx)
leaq 0x38(%rbx), %r13
movq %r13, 0x28(%rbx)
movq $0x0, 0x30(%rbx)
movb $0x0, 0x38(%rbx)
movq %r12, 0x10(%rbx)
movq %r15, 0x18(%rbx)
movq %r14, 0x20(%rbx)
movb $0x1, 0x48(%rbx)
movq %rbx, %rdi
movl $0x3, %esi
callq 0x1ae2e
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %r14
movq 0x28(%rbx), %rdi
cmpq %r13, %rdi
je 0xaceb
movq (%r13), %rsi
incq %rsi
callq 0x8260
movq %r14, %rdi
callq 0x8420
nop
// File: /workspace/github_cpp_makefile_star2_O3/martinda3[P]Compiler/src/ASifState.cpp
// Function: toyc::ASifState::ASifState(toyc::ASexpression*, toyc::ASstatement*)
ASifState::ASifState(ASexpression* oper1, ASstatement* oper2)
	{
		op1 = oper1;
		op2 = oper2;
		hasop = false;
		setType(IFstate);
	}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
callq 0x1ae1c
leaq 0x2ce3f(%rip), %rax     # 0x37b50
movq %rax, (%rbx)
leaq 0x38(%rbx), %r12
movq %r12, 0x28(%rbx)
movq $0x0, 0x30(%rbx)
xorl %eax, %eax
movb %al, 0x38(%rbx)
movq %r15, 0x10(%rbx)
movq %r14, 0x18(%rbx)
movb %al, 0x48(%rbx)
movq %rbx, %rdi
movl $0x3, %esi
callq 0x1ae2e
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %r14
movq 0x28(%rbx), %rdi
cmpq %r12, %rdi
je 0xad65
movq (%r12), %rsi
incq %rsi
callq 0x8260
movq %r14, %rdi
callq 0x8420
nop
// File: /workspace/github_cpp_makefile_star2_O3/martinda3[P]Compiler/src/TCparser.cpp
// Function: toyc::TCparser::program()
ASprogram* TCparser::program()
	{
		enteringDEBUG("Program");   //  Need to call DefinitionList to recirsivly repeat
		ASdefinition* definitionList[MAX_STATEMENTS];
		symTable = new TCsymTable();
		int num = DefinitionList(definitionList, 0);
		exitingDEBUG("Program");
		return new ASprog(inputFileName, definitionList, num);
	}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x1000, %rsp           # imm = 0x1000
movq %rdi, %rbx
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1e7ff(%rip), %rsi     # 0x2a130
leaq 0x1e7ff(%rip), %rdx     # 0x2a137
leaq 0x40(%rsp), %r14
movq %r14, %rdi
callq 0xfc2a
movq %r14, %rdi
callq 0xbaaa
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0xb964
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x8260
movl $0x328, %edi            # imm = 0x328
callq 0x8250
movq %rax, %r14
movq %rax, %rdi
callq 0x28e20
leaq 0x2ebf0(%rip), %rax     # 0x3a570
movq %r14, (%rax)
leaq 0x60(%rsp), %rsi
movq %rbx, %rdi
xorl %edx, %edx
callq 0xbe3e
movl %eax, %ebx
leaq 0x30(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1e78c(%rip), %rsi     # 0x2a130
leaq 0x1e78c(%rip), %rdx     # 0x2a137
leaq 0x20(%rsp), %rdi
callq 0xfc2a
leaq 0x20(%rsp), %rdi
callq 0xbd0c
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xb9d6
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8260
movl $0xfd8, %edi            # imm = 0xFD8
callq 0x8250
movq %rax, %r14
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2eafd(%rip), %rax     # 0x3a4f0
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0xabdc
movq %rsp, %rsi
leaq 0x60(%rsp), %rdx
movq %r14, %rdi
movl %ebx, %ecx
callq 0x26328
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xba2d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movq %r14, %rax
addq $0x1000, %rsp           # imm = 0x1000
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xba5b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
jmp 0xba5b
movq %rax, %rbx
movl $0xfd8, %esi            # imm = 0xFD8
jmp 0xba83
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0xbaa2
movq 0x30(%rsp), %rsi
jmp 0xba9a
movq %rax, %rbx
jmp 0xbaa2
movq %rax, %rbx
movl $0x328, %esi            # imm = 0x328
movq %r14, %rdi
jmp 0xba9d
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0xbaa2
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
callq 0x8420
// File: /workspace/github_cpp_makefile_star2_O3/martinda3[P]Compiler/src/TCparser.cpp
// Function: toyc::TCparser::DefinitionList(toyc::ASdefinition**, int)
int TCparser::DefinitionList(ASdefinition* l[], int n)
	{
		int num = 0;

		enteringDEBUG("Definition List");
		if (!(buff->getTokenType() == EOFILE))
		{
			l[n] = Definition();
			num = DefinitionList(l, n + 1);
		}
		else
		{
			num = n;
		}
		exitingDEBUG("Definition List");
		return num;
	}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x40, %rsp
movl %edx, %ebx
movq %rsi, %r14
movq %rdi, %r15
leaq 0x30(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x1e2d5(%rip), %rsi     # 0x2a138
leaq 0x1e2dd(%rip), %rdx     # 0x2a147
leaq 0x20(%rsp), %r12
movq %r12, %rdi
callq 0xfc2a
movq %r12, %rdi
callq 0xbaaa
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0xbe96
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x8(%r15), %rdi
callq 0x17fcc
cmpl $0x2d, %eax
je 0xbec2
movq %r15, %rdi
callq 0xbf3c
movslq %ebx, %rdx
movq %rax, (%r14,%rdx,8)
incl %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0xbe3e
movl %eax, %ebx
leaq 0x10(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x1e266(%rip), %rsi     # 0x2a138
leaq 0x1e26e(%rip), %rdx     # 0x2a147
movq %rsp, %r14
movq %r14, %rdi
callq 0xfc2a
movq %r14, %rdi
callq 0xbd0c
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0xbf02
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movl %ebx, %eax
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
jmp 0xbf23
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0xbf34
movq (%r13), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
callq 0x8420
// File: /workspace/github_cpp_makefile_star2_O3/martinda3[P]Compiler/src/TCparser.cpp
// Function: toyc::TCparser::accept(int)
TCtoken* TCparser::accept(int t)
	{
		TCtoken *token; 
		std::string name;
		if (t == buff->getTokenType())
		{
			token = buff;
			name = token->getLexeme();
//			if (v_parser) {tokenDEBUG(name);}
			buff = scanner->getToken();
			return token;
		}
		else { throw t; }
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x40, %rsp
movl %esi, %ebp
movq %rdi, %rbx
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq $0x0, -0x8(%r12)
movb $0x0, (%r12)
movq 0x8(%rdi), %rdi
callq 0x17fcc
cmpl %ebp, %eax
jne 0xc5ef
movq 0x8(%rbx), %r14
leaq 0x20(%rsp), %rdi
movq %r14, %rsi
callq 0x17fd0
movq %rsp, %rdi
leaq 0x20(%rsp), %r15
movq %r15, %rsi
callq 0x82f0
movq (%r15), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xc5bd
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8260
movq (%rbx), %rdi
callq 0x10f1e
movq %rax, 0x8(%rbx)
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xc5df
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movq %r14, %rax
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0x4, %edi
callq 0x8130
movl %ebp, (%rax)
movq 0x2d996(%rip), %rsi     # 0x39f98
movq %rax, %rdi
xorl %edx, %edx
callq 0x83f0
jmp 0xc60e
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xc627
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
callq 0x8420
nop
// File: /workspace/github_cpp_makefile_star2_O3/martinda3[P]Compiler/src/TCparser.cpp
// Function: toyc::TCparser::FunctionDefinition(toyc::ASdefinition**, int*)
ASstatement* TCparser::FunctionDefinition(ASdefinition* list[], int* i) // DONE NEED TO TEST MORE
	{
		// FunctionDefinition  --> FunctionHeader FunctionBody
		enteringDEBUG("Function Definition");
		ASstatement* operand = NULL;
		*i = FunctionHeader(list);
		operand = FunctionBody();
		exitingDEBUG("Function Definition");
		return operand;
	}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x40, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x30(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x1db21(%rip), %rsi     # 0x2a177
leaq 0x1db2d(%rip), %rdx     # 0x2a18a
leaq 0x20(%rsp), %r12
movq %r12, %rdi
callq 0xfc2a
movq %r12, %rdi
callq 0xbaaa
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0xc689
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
movq %r15, %rsi
callq 0xc71e
movl %eax, (%r14)
movq %rbx, %rdi
callq 0xc8e8
movq %rax, %rbx
leaq 0x10(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x1dac5(%rip), %rsi     # 0x2a177
leaq 0x1dad1(%rip), %rdx     # 0x2a18a
movq %rsp, %r14
movq %r14, %rdi
callq 0xfc2a
movq %r14, %rdi
callq 0xbd0c
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0xc6e2
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rax
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
jmp 0xc704
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0xc715
movq (%r13), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
callq 0x8420
nop
// File: /workspace/github_cpp_makefile_star2_O3/martinda3[P]Compiler/src/TCparser.cpp
// Function: toyc::TCparser::FunctionHeader(toyc::ASdefinition**)
int TCparser::FunctionHeader(ASdefinition* list[]) // DONE
	{
		// FunctionHeader --> LPAREN [ FormalParamList ] RPAREN
		enteringDEBUG("Function Header");
		accept(LPAREN);
		int i;
		if (buff->getTokenType() == INT || buff->getTokenType() == CHAR)
		{
			i = FormalParamList(list);
			accept(RPAREN);
			exitingDEBUG("Function Header");
		}
		else if (buff->getTokenType() == RPAREN)
		{
			i = 0;
			accept(RPAREN);
			exitingDEBUG("Function Header");
		}
		else      // Error Handlding
		{
			reportSEMANTIC_ERROR(scanner, "type or ')' expected");
			exit(EXIT_FAILURE);
		}
		return i;
	}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x1da48(%rip), %rsi     # 0x2a18b
leaq 0x1da50(%rip), %rdx     # 0x2a19a
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0xfc2a
movq %r15, %rdi
callq 0xbaaa
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc776
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
movl $0x1e, %esi
callq 0xc54c
movq 0x8(%rbx), %rdi
callq 0x17fcc
cmpl $0x3, %eax
je 0xc79f
movq 0x8(%rbx), %rdi
callq 0x17fcc
cmpl $0x5, %eax
jne 0xc7f0
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc9b8
movq %rbx, %rdi
movl $0x1f, %esi
callq 0xc54c
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x1d9c3(%rip), %rsi     # 0x2a18b
leaq 0x1d9cb(%rip), %rdx     # 0x2a19a
leaq 0x68(%rsp), %rbx
movq %rbx, %rdi
callq 0xfc2a
movq %rbx, %rdi
callq 0xbd0c
movq 0x68(%rsp), %rdi
movl $0x1, %ebx
jmp 0xc83f
movq 0x8(%rbx), %rdi
callq 0x17fcc
cmpl $0x1f, %eax
jne 0xc861
movq %rbx, %rdi
movl $0x1f, %esi
callq 0xc54c
leaq 0x58(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x1d96f(%rip), %rsi     # 0x2a18b
leaq 0x1d977(%rip), %rdx     # 0x2a19a
leaq 0x48(%rsp), %rbx
movq %rbx, %rdi
callq 0xfc2a
movq %rbx, %rdi
callq 0xbd0c
movq 0x48(%rsp), %rdi
xorl %ebx, %ebx
cmpq %r12, %rdi
je 0xc850
movq (%r12), %rsi
incq %rsi
callq 0x8260
movl %ebx, %eax
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq (%rbx), %rbx
leaq 0x38(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x1d926(%rip), %rsi     # 0x2a19b
leaq 0x1d933(%rip), %rdx     # 0x2a1af
leaq 0x28(%rsp), %r14
movq %r14, %rdi
callq 0xfc2a
movq %rbx, %rdi
movq %r14, %rsi
callq 0x174db
leaq 0x28(%rsp), %rdi
callq 0x8488
movl $0x1, %edi
callq 0x82e0
movq %rax, %rbx
movq 0x28(%rsp), %rdi
jmp 0xc8ce
movq %rax, %rbx
movq 0x48(%rsp), %rdi
jmp 0xc8ce
movq %rax, %rbx
movq 0x68(%rsp), %rdi
jmp 0xc8ce
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc8df
movq (%r12), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
callq 0x8420
nop
// File: /workspace/github_cpp_makefile_star2_O3/martinda3[P]Compiler/src/TCparser.cpp
// Function: toyc::TCparser::FunctionBody()
ASstatement* TCparser::FunctionBody()  // DONE NEED TO TEST MORE
	{
		// FunctionBody --> CompoundStatement
		enteringDEBUG("Function Body");
		ASstatement* operand = NULL;
		operand = CompoundStatement();
		//CompoundStatement();
		exitingDEBUG("Function Body");
		return operand;
	}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1d8ac(%rip), %rsi     # 0x2a1b0
leaq 0x1d8b2(%rip), %rdx     # 0x2a1bd
leaq 0x20(%rsp), %r14
movq %r14, %rdi
callq 0xfc2a
movq %r14, %rdi
callq 0xbaaa
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xc937
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
callq 0xd044
movq %rax, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1d85e(%rip), %rsi     # 0x2a1b0
leaq 0x1d864(%rip), %rdx     # 0x2a1bd
movq %rsp, %r14
movq %r14, %rdi
callq 0xfc2a
movq %r14, %rdi
callq 0xbd0c
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xc982
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
jmp 0xc9a0
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xc9b0
movq (%r15), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
callq 0x8420
// File: /workspace/github_cpp_makefile_star2_O3/martinda3[P]Compiler/src/TCparser.cpp
// Function: toyc::TCparser::ExpressionStatement()
ASstatement* TCparser::ExpressionStatement() // WIP
	{
		// ExpressionStatement --> Expression
		enteringDEBUG("Expression Statement");
		ASexpression* operand = NULL;
		operand = Expression();
		exitingDEBUG("Expression Statement");
		accept(SEMICOLON);
		return new ASexprState(operand);
	}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdi, %rbx
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1ccce(%rip), %rsi     # 0x2a23e
leaq 0x1ccdb(%rip), %rdx     # 0x2a252
leaq 0x28(%rsp), %r14
movq %r14, %rdi
callq 0xfc2a
movq %r14, %rdi
callq 0xbaaa
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0xd5a3
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
callq 0xd66a
movq %rax, %r14
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x1cc7f(%rip), %rsi     # 0x2a23e
leaq 0x1cc8c(%rip), %rdx     # 0x2a252
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0xfc2a
movq %r15, %rdi
callq 0xbd0c
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xd5f2
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
movl $0x27, %esi
callq 0xc54c
movl $0x38, %edi
callq 0x8250
movq %rax, %r15
movq %rax, %rdi
movq %r14, %rsi
callq 0x1b98c
movq %r15, %rax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
movl $0x38, %esi
movq %r15, %rdi
jmp 0xd65c
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xd661
movq 0x18(%rsp), %rsi
jmp 0xd659
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0xd661
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
callq 0x8420
nop
// File: /workspace/github_cpp_makefile_star2_O3/martinda3[P]Compiler/src/TCparser.cpp
// Function: toyc::TCparser::BreakStatement()
ASstatement* TCparser::BreakStatement() // DONE NEED TO TEST
	{
		// BreakStatement --> BREAK SEMICOLON
		enteringDEBUG("Break Statement");
		accept(BREAK);
		accept(SEMICOLON);
		exitingDEBUG("Break Statement");
		return new ASbreakState();
	}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1c634(%rip), %rsi     # 0x2a2b0
leaq 0x1c63c(%rip), %rdx     # 0x2a2bf
leaq 0x20(%rsp), %r14
movq %r14, %rdi
callq 0xfc2a
movq %r14, %rdi
callq 0xbaaa
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xdcaf
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
movl $0xb, %esi
callq 0xc54c
movq %rbx, %rdi
movl $0x27, %esi
callq 0xc54c
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1c5d7(%rip), %rsi     # 0x2a2b0
leaq 0x1c5df(%rip), %rdx     # 0x2a2bf
movq %rsp, %rbx
movq %rbx, %rdi
callq 0xfc2a
movq %rbx, %rdi
callq 0xbd0c
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0xdd09
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movl $0x10, %edi
callq 0x8250
movq %rax, %r14
movq %rax, %rdi
callq 0x18904
movq %r14, %rax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movl $0x10, %esi
movq %r14, %rdi
jmp 0xdd60
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0xdd65
movq 0x10(%rsp), %rsi
jmp 0xdd5d
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xdd65
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
callq 0x8420
nop
// File: /workspace/github_cpp_makefile_star2_O3/martinda3[P]Compiler/src/TCparser.cpp
// Function: toyc::TCparser::NullStatement()
ASstatement* TCparser::NullStatement() // DONE NEED TO TEST
	{
		// SEMICOLON
		enteringDEBUG("Null Statement");
		exitingDEBUG("Null Statement");
		accept(SEMICOLON);
		return new ASnullState();
	}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1c536(%rip), %rsi     # 0x2a2c0
leaq 0x1c53d(%rip), %rdx     # 0x2a2ce
leaq 0x20(%rsp), %r14
movq %r14, %rdi
callq 0xfc2a
movq %r14, %rdi
callq 0xbaaa
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xddbd
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8260
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1c4f3(%rip), %rsi     # 0x2a2c0
leaq 0x1c4fa(%rip), %rdx     # 0x2a2ce
movq %rsp, %r14
movq %r14, %rdi
callq 0xfc2a
movq %r14, %rdi
callq 0xbd0c
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xddfd
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
movl $0x27, %esi
callq 0xc54c
movl $0x10, %edi
callq 0x8250
movq %rax, %r14
movq %rax, %rdi
callq 0x189d8
movq %r14, %rax
addq $0x40, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movl $0x10, %esi
movq %r14, %rdi
jmp 0xde61
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xde66
movq 0x10(%rsp), %rsi
jmp 0xde5e
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xde66
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rdi
callq 0x8420