// File: /workspace/github_c_makefile_star2_O0/cinemast[P]sudoku/sudoku.c
// Function: el_init
static
void
el_init (edit_t *   ep,
         int        edit_field_y,
         int        edit_field_x,
         char *     edit_buffer,
         size_t     edit_buffer_size,
         size_t     edit_field_size)
{
    ep->eb          = edit_buffer;
    ep->ebs         = edit_buffer_size;
    ep->efs         = edit_field_size;
    ep->efx         = edit_field_x;
    ep->efy         = edit_field_y;
    ep->ecn         = (int)(strlen(edit_buffer));
    ep->ecp         = ep->ecn;
    ep->x_0         = edit_field_x;
    ep->x_1         = edit_field_x + 1;
    ep->x_2         = (int)edit_field_size - 2;
    ep->x_3         = ep->x_2 + 1;
    ep->x_mv        = ep->x_2 - ep->x_1;
    ep->m_0         = 0;
    ep->m_1         = 0;
    ep->prompt      = '$';
    ep->dprompt     = '$';
    ep->eol_mark    = '*';
    ep->ins_mode    = 1;
    ep->ch          = edit_buffer[0];

    /* Find out what should be the prompt character. */
    if (ep->ch == '>' ||
        ep->ch == '|' ||
        ep->ch == '%') {
        /* Learn the prompt and set the minimal 
         * index of the string buffer to 1.
         */
        ep->dprompt = ep->ch;
        ep->m_0     = 1;
        ep->m_1     = 1;
    }
    /* Calculate the visible part of the pathname. */
    if (ep->x_mv < ep->ecn - ep->m_0) {
        /* set the buffer position of the first visible character */
        ep->m_1 = ep->ecn - ep->x_mv;
    }

    if (ep->m_1 > 1) {
        /* give visual feedback about that there are more characters */
        ep->prompt = '<';
    } else {
        /* set the default prompt */
        ep->prompt = ep->dprompt;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movq %r8, -0x20(%rbp)
movq %r9, -0x28(%rbp)
movq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movl -0x10(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x18(%rax)
movl -0xc(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x1c(%rax)
movq -0x18(%rbp), %rdi
callq 0x20f0
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x20(%rax)
movq -0x8(%rbp), %rax
movl 0x20(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x24(%rax)
movl -0x10(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x28(%rax)
movl -0x10(%rbp), %ecx
addl $0x1, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x2c(%rax)
movq -0x28(%rbp), %rax
movl %eax, %ecx
subl $0x2, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x30(%rax)
movq -0x8(%rbp), %rax
movl 0x30(%rax), %ecx
addl $0x1, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x34(%rax)
movq -0x8(%rbp), %rax
movl 0x30(%rax), %ecx
movq -0x8(%rbp), %rax
subl 0x2c(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x38(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x3c(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x40(%rax)
movq -0x8(%rbp), %rax
movl $0x24, 0x44(%rax)
movq -0x8(%rbp), %rax
movl $0x24, 0x48(%rax)
movq -0x8(%rbp), %rax
movl $0x2a, 0x4c(%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x50(%rax)
movq -0x18(%rbp), %rax
movsbl (%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x54(%rax)
movq -0x8(%rbp), %rax
cmpl $0x3e, 0x54(%rax)
je 0x8fb0
movq -0x8(%rbp), %rax
cmpl $0x7c, 0x54(%rax)
je 0x8fb0
movq -0x8(%rbp), %rax
cmpl $0x25, 0x54(%rax)
jne 0x8fd4
movq -0x8(%rbp), %rax
movl 0x54(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x48(%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x3c(%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x40(%rax)
movq -0x8(%rbp), %rax
movl 0x38(%rax), %eax
movq -0x8(%rbp), %rcx
movl 0x20(%rcx), %ecx
movq -0x8(%rbp), %rdx
subl 0x3c(%rdx), %ecx
cmpl %ecx, %eax
jge 0x9002
movq -0x8(%rbp), %rax
movl 0x20(%rax), %ecx
movq -0x8(%rbp), %rax
subl 0x38(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x40(%rax)
movq -0x8(%rbp), %rax
cmpl $0x1, 0x40(%rax)
jle 0x9019
movq -0x8(%rbp), %rax
movl $0x3c, 0x44(%rax)
jmp 0x9027
movq -0x8(%rbp), %rax
movl 0x48(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x44(%rax)
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)