// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %rbx
subq $0x20d8, %rsp           # imm = 0x20D8
movq %r9, 0x48(%rsp)
testb %al, %al
je 0x11be4
movaps %xmm0, 0x50(%rsp)
movaps %xmm1, 0x60(%rsp)
movaps %xmm2, 0x70(%rsp)
movaps %xmm3, 0x80(%rsp)
movaps %xmm4, 0x90(%rsp)
movaps %xmm5, 0xa0(%rsp)
movaps %xmm6, 0xb0(%rsp)
movaps %xmm7, 0xc0(%rsp)
movq %r8, 0x40(%rsp)
movq %rcx, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movq 0x2818(%rdi), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
cmpl $0x0, (%rax)
jne 0x11d31
movq %rsi, %r14
movq %rdi, %rbx
movq 0x8(%rax), %rcx
movq %rcx, 0x2758(%rdi)
movq 0x10(%rax), %rcx
decq %rcx
movq %rcx, 0x2760(%rdi)
movq 0x20(%rax), %rcx
incq %rcx
movq %rcx, 0x2770(%rdi)
movq 0x20(%rax), %rax
movq %rax, 0x2768(%rdi)
leaq 0x2808(%rdi), %rsi
pushq $0x1
popq %rdi
callq 0xd1c0
movb $0x1, %bpl
movb %bpl, 0x2800(%rbx)
movq 0x2798(%rbx), %rax
movq 0x58(%rax), %rdi
callq 0xd090
movq 0x2798(%rbx), %rdi
leaq 0x19f35(%rip), %rdx     # 0x2bbaf
pushq $0x1
popq %r15
movq %r15, %rsi
callq 0xdd58
movl $0x628, %esi            # imm = 0x628
movq %r15, %rdi
callq 0xd380
movq 0x2798(%rbx), %rcx
movq %rax, 0x58(%rcx)
xorps %xmm0, %xmm0
movups %xmm0, 0x2788(%rbx)
leaq 0x20(%rsp), %rax
movq %rsp, %rcx
movq %rax, 0x10(%rcx)
leaq 0x2100(%rsp), %rax
movq %rax, 0x8(%rcx)
movabsq $0x3000000010, %rax     # imm = 0x3000000010
movq %rax, (%rcx)
leaq 0xd0(%rsp), %r15
movl $0x2000, %esi           # imm = 0x2000
movq %r15, %rdi
movq %r14, %rdx
callq 0xd180
movq 0x2798(%rbx), %rdi
movq 0x2788(%rbx), %rdx
movq 0x2790(%rbx), %rcx
movq %r15, %rsi
callq 0xd9ef
movq 0x2798(%rbx), %rax
movl $0x2, 0x18(%rax)
movb %bpl, 0x50(%rax)
movq 0x58(%rax), %rcx
leaq -0x12a6(%rip), %rdx     # 0x10a79
movq %rdx, 0x600(%rcx)
addq $0x1a50, %rbx           # imm = 0x1A50
movq %rbx, 0x60(%rax)
addq $0x20d8, %rsp           # imm = 0x20D8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq