// File: /workspace/github_c_makefile_star2_O0/cinemast[P]sudoku/sudoku.c
// Function: el_process_move_cursor_left_or_right
static
void
el_process_move_cursor_left_or_right (edit_t *    ep)
{
    if ((ep->m_0 < ep->ecp && VKEY_LEFT == ep->ch) ||
        (ep->ecp < ep->ecn && VKEY_RIGHT == ep->ch)) {
        /* Remove the highlight at the previous position if the removal is needed. */
        int first_invisible = ep->m_1 + ep->x_mv;
        el_remove_highlight_in_overwrite_mode(ep);
        ep->ecp += (VKEY_RIGHT == ep->ch) - (VKEY_LEFT == ep->ch);
        if (ep->ecp < ep->m_1
            || ep->ecp > first_invisible
            || (ep->ecp == first_invisible && ep->ecp != ep->ecn)) {
            /* scroll right or left as needed */
            ep->m_1 += (ep->ecp >= first_invisible) - (ep->ecp < ep->m_1);
            first_invisible = ep->m_1 + ep->x_mv;
            if (first_invisible < (int)ep->ebs) {
                char chx = ep->eb[first_invisible];
                ep->eb[first_invisible] = 0;
                mvaddstr(ep->efy, ep->x_1, &(ep->eb[ep->m_1]));
                ep->eb[first_invisible] = chx;
            } else {
                mvaddstr(ep->efy, ep->x_1, &(ep->eb[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);
    } else {
        beep();
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movl 0x3c(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl 0x24(%rcx), %eax
jge 0x960a
movq -0x8(%rbp), %rcx
movl $0x144, %eax            # imm = 0x144
cmpl 0x54(%rcx), %eax
je 0x9630
movq -0x8(%rbp), %rax
movl 0x24(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl 0x20(%rcx), %eax
jge 0x97ef
movq -0x8(%rbp), %rcx
movl $0x143, %eax            # imm = 0x143
cmpl 0x54(%rcx), %eax
jne 0x97ef
movq -0x8(%rbp), %rax
movl 0x40(%rax), %eax
movq -0x8(%rbp), %rcx
addl 0x38(%rcx), %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa080
movq -0x8(%rbp), %rcx
movl $0x143, %eax            # imm = 0x143
cmpl 0x54(%rcx), %eax
sete %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x8(%rbp), %rdx
movl $0x144, %eax            # imm = 0x144
cmpl 0x54(%rdx), %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
subl %eax, %ecx
movq -0x8(%rbp), %rax
addl 0x24(%rax), %ecx
movl %ecx, 0x24(%rax)
movq -0x8(%rbp), %rax
movl 0x24(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl 0x40(%rcx), %eax
jl 0x96be
movq -0x8(%rbp), %rax
movl 0x24(%rax), %eax
cmpl -0xc(%rbp), %eax
jg 0x96be
movq -0x8(%rbp), %rax
movl 0x24(%rax), %eax
cmpl -0xc(%rbp), %eax
jne 0x97db
movq -0x8(%rbp), %rax
movl 0x24(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl 0x20(%rcx), %eax
je 0x97db
movq -0x8(%rbp), %rax
movl 0x24(%rax), %eax
cmpl -0xc(%rbp), %eax
setge %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x8(%rbp), %rax
movl 0x24(%rax), %eax
movq -0x8(%rbp), %rdx
cmpl 0x40(%rdx), %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
subl %eax, %ecx
movq -0x8(%rbp), %rax
addl 0x40(%rax), %ecx
movl %ecx, 0x40(%rax)
movq -0x8(%rbp), %rax
movl 0x40(%rax), %eax
movq -0x8(%rbp), %rcx
addl 0x38(%rcx), %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
cmpl %ecx, %eax
jge 0x978f
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0xd(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movq 0x789f(%rip), %rax      # 0x10fd8
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %esi
movq -0x8(%rbp), %rax
movl 0x2c(%rax), %edx
callq 0x22b0
cmpl $-0x1, %eax
jne 0x9756
jmp 0x977c
movq 0x787b(%rip), %rax      # 0x10fd8
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rsi
movq -0x8(%rbp), %rax
movslq 0x40(%rax), %rax
addq %rax, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2330
movb -0xd(%rbp), %dl
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x97d9
movq 0x7842(%rip), %rax      # 0x10fd8
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %esi
movq -0x8(%rbp), %rax
movl 0x2c(%rax), %edx
callq 0x22b0
cmpl $-0x1, %eax
jne 0x97b3
jmp 0x97d9
movq 0x781e(%rip), %rax      # 0x10fd8
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rsi
movq -0x8(%rbp), %rax
movslq 0x40(%rax), %rax
addq %rax, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2330
jmp 0x97db
movq -0x8(%rbp), %rdi
callq 0x9e90
movq -0x8(%rbp), %rdi
callq 0x9ef0
jmp 0x97f4
callq 0x20c0
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)