// File: /workspace/github_c_makefile_star2_O0/cinemast[P]sudoku/sudoku.c
// Function: el_put_visible_char_in_the_middle
static
void
el_put_visible_char_in_the_middle (edit_t *    ep)
{
    int first_invisible     = ep->m_1 + ep->x_mv;
    int is_more_on_left     = (first_invisible < ep->ecn || ep->ins_mode);
    int is_scroll_to_left   = (first_invisible <= ep->ecp + is_more_on_left);
    int nsl                 = !(is_scroll_to_left);

    if (ep->ins_mode) {
        /* Right-shift the previous content. */
        memmove(&ep->eb[ep->ecp + 1],
                &ep->eb[ep->ecp],
                (ep->ecn - ep->ecp) + 1);
        ++ep->ecn;
    }
    ep->eb[ep->ecp] = (char)ep->ch;
    ep->eb[ep->ecn] = '\0';
    el_show_actual_char(ep);
    ++ep->ecp;

    if (is_scroll_to_left) {
        /* Scroll to left */
        ++ep->m_1;
        ++first_invisible;
    }
    /* Remove the previous highlight if there
     * was any, and show the modified text.
     */
    if (first_invisible < ep->ecn) {
        /* partial display from the cursor
         * or from the beginning of the visible part
         */
        char    che = ep->eb[first_invisible];

        ep->eb[first_invisible] = 0;

        mvaddstr(ep->efy,
                 nsl * (ep->ecp - ep->m_1) + ep->x_1,
                 &(ep->eb[nsl * (ep->ecp - ep->m_1) + ep->m_1]));

        ep->eb[first_invisible] = che;
    } else {
        /* display the entire right side from the cursor
         * or from the beginning of the visible part
         */
        mvaddstr(ep->efy,
                 nsl * (ep->ecp - ep->m_1) + ep->x_1,
                 &(ep->eb[nsl * (ep->ecp - ep->m_1) + ep->m_1]));
    }

    /* Higliht the char in overwrite mode at the current position */
    el_highlight_in_overwrite_mode(ep);
    /* Make sure that the proper markers displayed. */
    el_adjust_markers (ep);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movl 0x40(%rax), %eax
movq -0x8(%rbp), %rcx
addl 0x38(%rcx), %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %ecx
movq -0x8(%rbp), %rdx
movb $0x1, %al
cmpl 0x20(%rdx), %ecx
movb %al, -0x1a(%rbp)
jl 0xa0ec
movq -0x8(%rbp), %rax
cmpl $0x0, 0x50(%rax)
setne %al
movb %al, -0x1a(%rbp)
movb -0x1a(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x10(%rbp)
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
movl 0x24(%rcx), %ecx
addl -0x10(%rbp), %ecx
cmpl %ecx, %eax
setle %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x50(%rax)
je 0xa17a
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movl 0x24(%rax), %eax
addl $0x1, %eax
cltq
addq %rax, %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rsi
movq -0x8(%rbp), %rax
movslq 0x24(%rax), %rax
addq %rax, %rsi
movq -0x8(%rbp), %rax
movl 0x20(%rax), %eax
movq -0x8(%rbp), %rcx
subl 0x24(%rcx), %eax
addl $0x1, %eax
movslq %eax, %rdx
callq 0x2260
movq -0x8(%rbp), %rax
movl 0x20(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x20(%rax)
movq -0x8(%rbp), %rax
movl 0x54(%rax), %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movslq 0x24(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movslq 0x20(%rcx), %rcx
movb $0x0, (%rax,%rcx)
movq -0x8(%rbp), %rdi
callq 0x9d90
movq -0x8(%rbp), %rax
movl 0x24(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x24(%rax)
cmpl $0x0, -0x14(%rbp)
je 0xa1da
movq -0x8(%rbp), %rax
movl 0x40(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x40(%rax)
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x20(%rcx), %eax
jge 0xa290
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x19(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movq 0x6dc7(%rip), %rax      # 0x10fd8
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %esi
movl -0x18(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x24(%rax), %eax
movq -0x8(%rbp), %rcx
subl 0x40(%rcx), %eax
imull %eax, %edx
movq -0x8(%rbp), %rax
addl 0x2c(%rax), %edx
callq 0x22b0
cmpl $-0x1, %eax
jne 0xa242
jmp 0xa27d
movq 0x6d8f(%rip), %rax      # 0x10fd8
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rsi
movl -0x18(%rbp), %eax
movq -0x8(%rbp), %rcx
movl 0x24(%rcx), %ecx
movq -0x8(%rbp), %rdx
subl 0x40(%rdx), %ecx
imull %ecx, %eax
movq -0x8(%rbp), %rcx
addl 0x40(%rcx), %eax
cltq
addq %rax, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2330
movb -0x19(%rbp), %dl
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0xa303
movq 0x6d41(%rip), %rax      # 0x10fd8
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %esi
movl -0x18(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x24(%rax), %eax
movq -0x8(%rbp), %rcx
subl 0x40(%rcx), %eax
imull %eax, %edx
movq -0x8(%rbp), %rax
addl 0x2c(%rax), %edx
callq 0x22b0
cmpl $-0x1, %eax
jne 0xa2c8
jmp 0xa303
movq 0x6d09(%rip), %rax      # 0x10fd8
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rsi
movl -0x18(%rbp), %eax
movq -0x8(%rbp), %rcx
movl 0x24(%rcx), %ecx
movq -0x8(%rbp), %rdx
subl 0x40(%rdx), %ecx
imull %ecx, %eax
movq -0x8(%rbp), %rcx
addl 0x40(%rcx), %eax
cltq
addq %rax, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2330
movq -0x8(%rbp), %rdi
callq 0x9e90
movq -0x8(%rbp), %rdi
callq 0x9ef0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)