// File: /workspace/github_c_makefile_star2_O0/justy989[P]ce/ce_app.c
// Function: ce_app_message
void ce_app_message(CeApp_t* app, const char* fmt, ...){
     CeLayout_t* tab_layout = app->tab_list_layout->tab_list.current;
     if(tab_layout->tab.current->type != CE_LAYOUT_TYPE_VIEW) return;
     CeView_t* view = &tab_layout->tab.current->view;

     app->message_view.rect.left = view->rect.left;
     app->message_view.rect.right = view->rect.right - 1;
     app->message_view.rect.bottom = view->rect.bottom + 1;
     app->message_view.rect.top = view->rect.bottom;

#if defined(PLATFORM_WINDOWS)
     timespec_get(&app->message_time, TIME_UTC);
#else
     clock_gettime(CLOCK_MONOTONIC, &app->message_time);
#endif
     app->message_mode = true;

     free(app->message_view.buffer->app_data);
     ce_buffer_alloc(app->message_view.buffer, 1, "[message]");
     app->message_view.buffer->app_data = calloc(1, sizeof(CeAppBufferData_t));
     app->message_view.cursor = (CePoint_t){0, 0};

     char message_buffer[BUFSIZ];
     va_list args;
     va_start(args, fmt);
     vsnprintf(message_buffer, BUFSIZ, fmt, args);
     va_end(args);

     ce_buffer_insert_string(app->message_view.buffer, message_buffer, app->message_view.cursor);
     app->message_view.buffer->status = CE_BUFFER_STATUS_READONLY;
     app->message_view.buffer->no_line_numbers = true;

     CeAppBufferData_t* buffer_data = app->message_view.buffer->app_data;
     buffer_data->syntax_function = ce_syntax_highlight_message;
     app->message_view.buffer->syntax_data = &app->config_options;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2110, %rsp           # imm = 0x2110
testb %al, %al
je 0x15a37
movaps %xmm0, -0x20e0(%rbp)
movaps %xmm1, -0x20d0(%rbp)
movaps %xmm2, -0x20c0(%rbp)
movaps %xmm3, -0x20b0(%rbp)
movaps %xmm4, -0x20a0(%rbp)
movaps %xmm5, -0x2090(%rbp)
movaps %xmm6, -0x2080(%rbp)
movaps %xmm7, -0x2070(%rbp)
movq %r9, -0x20e8(%rbp)
movq %r8, -0x20f0(%rbp)
movq %rcx, -0x20f8(%rbp)
movq %rdx, -0x2100(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x2818(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x0, (%rax)
je 0x15a80
jmp 0x15c57
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
addq $0x8, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq (%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x2758(%rax)
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rcx
subq $0x1, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x2760(%rax)
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rcx
addq $0x1, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x2770(%rax)
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x2768(%rax)
movq -0x8(%rbp), %rsi
addq $0x2808, %rsi           # imm = 0x2808
movl $0x1, %edi
callq 0xd1b0
movq -0x8(%rbp), %rax
movb $0x1, 0x2800(%rax)
movq -0x8(%rbp), %rax
movq 0x2798(%rax), %rax
movq 0x58(%rax), %rdi
callq 0xd090
movq -0x8(%rbp), %rax
movq 0x2798(%rax), %rdi
movl $0x1, %esi
leaq 0x2e032(%rip), %rdx     # 0x43b60
callq 0xe050
movl $0x1, %edi
movl $0x628, %esi            # imm = 0x628
callq 0xd360
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq 0x2798(%rax), %rax
movq %rcx, 0x58(%rax)
movq -0x8(%rbp), %rax
movq $0x0, -0x30(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x30(%rbp), %rcx
movq %rcx, 0x2788(%rax)
movq -0x28(%rbp), %rcx
movq %rcx, 0x2790(%rax)
leaq -0x2050(%rbp), %rax
leaq -0x2110(%rbp), %rcx
movq %rcx, 0x10(%rax)
leaq 0x10(%rbp), %rcx
movq %rcx, 0x8(%rax)
movl $0x30, 0x4(%rax)
movl $0x10, (%rax)
leaq -0x2030(%rbp), %rdi
movq -0x10(%rbp), %rdx
leaq -0x2050(%rbp), %rcx
movl $0x2000, %esi           # imm = 0x2000
callq 0xd170
leaq -0x2050(%rbp), %rax
movq -0x8(%rbp), %rax
movq 0x2798(%rax), %rdi
leaq -0x2030(%rbp), %rsi
movq -0x8(%rbp), %rax
movq 0x2788(%rax), %rdx
movq 0x2790(%rax), %rcx
callq 0xda70
movq -0x8(%rbp), %rax
movq 0x2798(%rax), %rax
movl $0x2, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x2798(%rax), %rax
movb $0x1, 0x50(%rax)
movq -0x8(%rbp), %rax
movq 0x2798(%rax), %rax
movq 0x58(%rax), %rax
movq %rax, -0x2058(%rbp)
movq -0x2058(%rbp), %rax
leaq -0x22d6(%rip), %rcx     # 0x13960
movq %rcx, 0x600(%rax)
movq -0x8(%rbp), %rcx
addq $0x1a50, %rcx           # imm = 0x1A50
movq -0x8(%rbp), %rax
movq 0x2798(%rax), %rax
movq %rcx, 0x60(%rax)
addq $0x2110, %rsp           # imm = 0x2110
popq %rbp
retq