// File: /workspace/github_c_makefile_star2_O0/jonof[P]jftekwar/src/startgtk_game.c
// Function: create_window
static GtkWindow *create_window(void)
{
    GtkBuilder *builder = NULL;
    GError *error = NULL;
    GtkWidget *window = NULL;
    GtkImage *appicon = NULL;

    builder = gtk_builder_new();
    if (!builder) {
        goto fail;
    }
    if (!gtk_builder_add_from_resource(builder, "/startgtk.glade", &error)) {
        buildprintf("gtk_builder_add_from_resource error: %s\n", error->message);
        goto fail;
    }

    // Get the window widget.
    window = GTK_WIDGET(get_and_connect_signal(builder, "startgtk",
        "delete-event", G_CALLBACK(on_startgtk_delete_event)));
    if (!window) {
        goto fail;
    }

    // Set the appicon image.
    appicon = GTK_IMAGE(gtk_builder_get_object(builder, "appicon"));
    if (appicon) {
        gtk_image_set_from_resource(appicon, "/appicon.png");
    }

    // Get the window widgets we need and wire them up as appropriate.
    controls.startbutton = GTK_WIDGET(get_and_connect_signal(builder, "startbutton",
        "clicked", G_CALLBACK(on_startbutton_clicked)));
    controls.cancelbutton = GTK_WIDGET(get_and_connect_signal(builder, "cancelbutton",
        "clicked", G_CALLBACK(on_cancelbutton_clicked)));

    controls.tabs = GTK_WIDGET(gtk_builder_get_object(builder, "tabs"));
    controls.configbox = GTK_WIDGET(gtk_builder_get_object(builder, "configbox"));
    controls.alwaysshowcheck = GTK_WIDGET(gtk_builder_get_object(builder, "alwaysshowcheck"));

    controls.messagestext = GTK_WIDGET(gtk_builder_get_object(builder, "messagestext"));

    controls.vmode3dcombo = GTK_WIDGET(gtk_builder_get_object(builder, "vmode3dcombo"));
    controls.vmode3dlist = GTK_LIST_STORE(gtk_builder_get_object(builder, "vmode3dlist"));
    controls.fullscreencheck = GTK_WIDGET(get_and_connect_signal(builder, "fullscreencheck",
        "toggled", G_CALLBACK(on_fullscreencheck_toggled)));

    controls.usemousecheck = GTK_WIDGET(gtk_builder_get_object(builder, "usemousecheck"));
    controls.usejoystickcheck = GTK_WIDGET(gtk_builder_get_object(builder, "usejoystickcheck"));
    controls.soundqualitycombo = GTK_WIDGET(gtk_builder_get_object(builder, "soundqualitycombo"));
    controls.soundqualitylist = GTK_LIST_STORE(gtk_builder_get_object(builder, "soundqualitylist"));

    controls.chooseimportbutton = GTK_WIDGET(get_and_connect_signal(builder, "chooseimportbutton",
        "clicked", G_CALLBACK(on_chooseimportbutton_clicked)));
    controls.importinfobutton = GTK_WIDGET(get_and_connect_signal(builder, "importinfobutton",
        "clicked", G_CALLBACK(on_importinfobutton_clicked)));

    controls.importstatuswindow = GTK_WINDOW(gtk_builder_get_object(builder, "importstatuswindow"));
    controls.importstatustext = GTK_WIDGET(gtk_builder_get_object(builder, "importstatustext"));
    controls.importstatuscancelbutton = GTK_WIDGET(gtk_builder_get_object(builder, "importstatuscancelbutton"));

    g_object_unref(G_OBJECT(builder));

    return GTK_WINDOW(window);

fail:
    if (window) {
        gtk_widget_destroy(window);
    }
    if (builder) {
        g_object_unref(G_OBJECT(builder));
    }
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq $0x0, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
callq 0x8090
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x497b0
jmp 0x49c36
movq -0x10(%rbp), %rdi
leaq 0xa5ca5(%rip), %rsi     # 0xef460
leaq -0x18(%rbp), %rdx
callq 0x8a40
cmpl $0x0, %eax
jne 0x497e4
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0xa5c98(%rip), %rdi     # 0xef470
movb $0x0, %al
callq 0x52630
jmp 0x49c36
movq -0x10(%rbp), %rdi
leaq 0xa5caa(%rip), %rsi     # 0xef499
leaq 0xa5cac(%rip), %rdx     # 0xef4a2
leaq 0xb33(%rip), %rcx       # 0x4a330
callq 0x4a2b0
movq %rax, -0x30(%rbp)
callq 0x90b0
movq -0x30(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x49827
jmp 0x49c36
movq -0x10(%rbp), %rdi
leaq 0xa5c7d(%rip), %rsi     # 0xef4af
callq 0x8a90
movq %rax, -0x38(%rbp)
callq 0x8ba0
movq -0x38(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x49867
movq -0x28(%rbp), %rdi
leaq 0xa5c55(%rip), %rsi     # 0xef4b7
callq 0x84e0
movq -0x10(%rbp), %rdi
leaq 0xa5c52(%rip), %rsi     # 0xef4c4
leaq 0xa5c57(%rip), %rdx     # 0xef4d0
leaq 0xb10(%rip), %rcx       # 0x4a390
callq 0x4a2b0
movq %rax, -0xd0(%rbp)
callq 0x90b0
movq -0xd0(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e589(%rip)    # 0x377e30
movq -0x10(%rbp), %rdi
leaq 0xa5d19(%rip), %rsi     # 0xef5cb
leaq 0xa5c17(%rip), %rdx     # 0xef4d0
leaq 0xd50(%rip), %rcx       # 0x4a610
callq 0x4a2b0
movq %rax, -0xc8(%rbp)
callq 0x90b0
movq -0xc8(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e551(%rip)    # 0x377e38
movq -0x10(%rbp), %rdi
leaq 0xa5be6(%rip), %rsi     # 0xef4d8
callq 0x8a90
movq %rax, -0xc0(%rbp)
callq 0x90b0
movq -0xc0(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e527(%rip)    # 0x377e40
movq -0x10(%rbp), %rdi
leaq 0xa5bb9(%rip), %rsi     # 0xef4dd
callq 0x8a90
movq %rax, -0xb8(%rbp)
callq 0x90b0
movq -0xb8(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e4fd(%rip)    # 0x377e48
movq -0x10(%rbp), %rdi
leaq 0xa5b91(%rip), %rsi     # 0xef4e7
callq 0x8a90
movq %rax, -0xb0(%rbp)
callq 0x90b0
movq -0xb0(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e4d3(%rip)    # 0x377e50
movq -0x10(%rbp), %rdi
leaq 0xa5b6f(%rip), %rsi     # 0xef4f7
callq 0x8a90
movq %rax, -0xa8(%rbp)
callq 0x90b0
movq -0xa8(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e4a9(%rip)    # 0x377e58
movq -0x10(%rbp), %rdi
leaq 0xa5b4a(%rip), %rsi     # 0xef504
callq 0x8a90
movq %rax, -0xa0(%rbp)
callq 0x90b0
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e47f(%rip)    # 0x377e60
movq -0x10(%rbp), %rdi
leaq 0xa5b25(%rip), %rsi     # 0xef511
callq 0x8a90
movq %rax, -0x98(%rbp)
callq 0x8750
movq -0x98(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e455(%rip)    # 0x377e68
movq -0x10(%rbp), %rdi
leaq 0xa5aff(%rip), %rsi     # 0xef51d
leaq 0xa5b08(%rip), %rdx     # 0xef52d
leaq 0xc44(%rip), %rcx       # 0x4a670
callq 0x4a2b0
movq %rax, -0x90(%rbp)
callq 0x90b0
movq -0x90(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e41d(%rip)    # 0x377e70
movq -0x10(%rbp), %rdi
leaq 0xa5ad7(%rip), %rsi     # 0xef535
callq 0x8a90
movq %rax, -0x88(%rbp)
callq 0x90b0
movq -0x88(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e3f3(%rip)    # 0x377e78
movq -0x10(%rbp), %rdi
leaq 0xa5ab3(%rip), %rsi     # 0xef543
callq 0x8a90
movq %rax, -0x80(%rbp)
callq 0x90b0
movq -0x80(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e3cf(%rip)    # 0x377e80
movq -0x10(%rbp), %rdi
leaq 0xa5a98(%rip), %rsi     # 0xef554
callq 0x8a90
movq %rax, -0x78(%rbp)
callq 0x90b0
movq -0x78(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e3ab(%rip)    # 0x377e88
movq -0x10(%rbp), %rdi
leaq 0xa5a7e(%rip), %rsi     # 0xef566
callq 0x8a90
movq %rax, -0x70(%rbp)
callq 0x8750
movq -0x70(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e387(%rip)    # 0x377e90
movq -0x10(%rbp), %rdi
leaq 0xa5a63(%rip), %rsi     # 0xef577
leaq 0xa59b5(%rip), %rdx     # 0xef4d0
leaq 0xb6e(%rip), %rcx       # 0x4a690
callq 0x4a2b0
movq %rax, -0x68(%rbp)
callq 0x90b0
movq -0x68(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e355(%rip)    # 0x377e98
movq -0x10(%rbp), %rdi
leaq 0xa5a3c(%rip), %rsi     # 0xef58a
leaq 0xa597b(%rip), %rdx     # 0xef4d0
leaq 0xe24(%rip), %rcx       # 0x4a980
callq 0x4a2b0
movq %rax, -0x60(%rbp)
callq 0x90b0
movq -0x60(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e323(%rip)    # 0x377ea0
movq -0x10(%rbp), %rdi
leaq 0xa5a13(%rip), %rsi     # 0xef59b
callq 0x8a90
movq %rax, -0x58(%rbp)
callq 0x9050
movq -0x58(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e2ff(%rip)    # 0x377ea8
movq -0x10(%rbp), %rdi
leaq 0xa59fa(%rip), %rsi     # 0xef5ae
callq 0x8a90
movq %rax, -0x50(%rbp)
callq 0x90b0
movq -0x50(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e2db(%rip)    # 0x377eb0
movq -0x10(%rbp), %rdi
leaq 0xa59df(%rip), %rsi     # 0xef5bf
callq 0x8a90
movq %rax, -0x48(%rbp)
callq 0x90b0
movq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, 0x32e2b7(%rip)    # 0x377eb8
movq -0x10(%rbp), %rdi
movl $0x50, %esi
callq 0x8150
movq %rax, %rdi
callq 0x8de0
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
callq 0x9050
movq -0x40(%rbp), %rdi
movq %rax, %rsi
callq 0x8150
movq %rax, -0x8(%rbp)
jmp 0x49c6b
cmpq $0x0, -0x20(%rbp)
je 0x49c46
movq -0x20(%rbp), %rdi
callq 0x81d0
cmpq $0x0, -0x10(%rbp)
je 0x49c63
movq -0x10(%rbp), %rdi
movl $0x50, %esi
callq 0x8150
movq %rax, %rdi
callq 0x8de0
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0xd0, %rsp
popq %rbp
retq
nopl (%rax,%rax)