// File: /workspace/github_c_makefile_star2_O2/moefh[P]hed/src/editor.c
// Function: draw_main_screen
static void draw_main_screen(struct hed_editor *editor)
{
  struct hed_screen *scr = &editor->screen;
  struct hed_file *file = editor->file;

  if (scr->window_changed || ! file->data) {
    reset_color();
    clear_screen();
    scr->window_changed = false;
  }

  draw_header(editor);
  draw_footer(editor);

  if (file->data) {
    draw_file_dump(editor);
    draw_pos_data_dump(editor);
  }
  
  hed_scr_flush();
  scr->redraw_needed = false;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdi, %r12
movq 0x628(%rdi), %r14
cmpb $0x0, 0x114(%rdi)
jne 0x4a27
cmpq $0x0, 0x10(%r14)
movq %r14, %rbx
jne 0x4a42
callq 0x305c
callq 0x30ca
movb $0x0, 0x114(%r12)
movq 0x628(%r12), %rbx
callq 0x305c
pushq $0x1e
popq %rdi
pushq $0x2f
popq %rsi
callq 0x2ff2
pushq $0x1
popq %rdi
movl %edi, %esi
callq 0x3078
movq 0x20(%rbx), %rax
testq %rax, %rax
leaq 0x2c89(%rip), %rsi      # 0x76f3
cmovneq %rax, %rsi
leaq 0x2ed9(%rip), %rdi      # 0x794e
xorl %eax, %eax
callq 0x2d2c
cmpb $0x1, 0x28(%rbx)
jne 0x4a90
leaq 0x2c75(%rip), %rdi      # 0x76fe
xorl %eax, %eax
callq 0x2d2c
cmpb $0x1, 0x2(%r12)
jne 0x4aa6
leaq 0x2c6b(%rip), %rdi      # 0x770a
xorl %eax, %eax
callq 0x2d2c
callq 0x306a
movl 0x10c(%r12), %edi
addl $-0x9, %edi
pushq $0x1
popq %rbx
movl %ebx, %esi
callq 0x3078
leaq 0x2e88(%rip), %rdi      # 0x794f
leaq 0x2aa6(%rip), %rsi      # 0x7574
xorl %eax, %eax
callq 0x2d2c
callq 0x305c
callq 0x305c
movl 0x110(%r12), %esi
addl $-0x2, %esi
movl %ebx, %edi
callq 0x3078
cmpb $0x0, 0x119(%r12)
je 0x4b20
leaq 0x119(%r12), %rbx
pushq $0x1e
popq %rdi
pushq $0x2f
popq %rsi
callq 0x2ff2
leaq 0x2e38(%rip), %rdi      # 0x794e
movq %rbx, %rsi
xorl %eax, %eax
callq 0x2d2c
callq 0x306a
movl 0x104(%r12), %eax
cmpq $0x3, %rax
ja 0x4d96
leaq 0x2b1a(%rip), %rcx      # 0x7658
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0x110(%r12), %esi
decl %esi
leaq 0x2bd5(%rip), %rdx      # 0x772d
leaq 0x2bd1(%rip), %rcx      # 0x7730
pushq $0x1
popq %rbx
movl %ebx, %edi
callq 0x40c5
movl 0x110(%r12), %esi
movq 0x628(%r12), %rax
cmpq %rax, (%rax)
leaq 0x2bb9(%rip), %rax      # 0x773c
leaq 0x2bb7(%rip), %rcx      # 0x7741
cmoveq %rax, %rcx
leaq 0x2ba4(%rip), %rdx      # 0x7739
movl %ebx, %edi
callq 0x40c5
movl 0x110(%r12), %esi
decl %esi
leaq 0x2b9a(%rip), %rdx      # 0x7747
leaq 0x2b96(%rip), %rcx      # 0x774a
pushq $0x11
popq %rbx
movl %ebx, %edi
callq 0x40c5
movl 0x110(%r12), %esi
leaq 0x2b88(%rip), %rdx      # 0x7755
leaq 0x2b84(%rip), %rcx      # 0x7758
movl %ebx, %edi
callq 0x40c5
movl 0x110(%r12), %esi
decl %esi
leaq 0x2b76(%rip), %rdx      # 0x7762
leaq 0x2b72(%rip), %rcx      # 0x7765
pushq $0x21
popq %rbx
movl %ebx, %edi
callq 0x40c5
movl 0x110(%r12), %esi
leaq 0x2971(%rip), %rdx      # 0x757d
leaq 0x2b5b(%rip), %rcx      # 0x776e
movl %ebx, %edi
callq 0x40c5
movl 0x110(%r12), %esi
decl %esi
leaq 0x2b4b(%rip), %rdx      # 0x7776
leaq 0x2b48(%rip), %rcx      # 0x777a
pushq $0x31
popq %rbx
movl %ebx, %edi
callq 0x40c5
movl 0x110(%r12), %esi
leaq 0x2b3b(%rip), %rdx      # 0x7786
leaq 0x2b38(%rip), %rcx      # 0x778a
movl %ebx, %edi
callq 0x40c5
movl 0x110(%r12), %esi
decl %esi
leaq 0x2b26(%rip), %rdx      # 0x7790
leaq 0x2b23(%rip), %rcx      # 0x7794
pushq $0x41
popq %rbx
movl %ebx, %edi
callq 0x40c5
movl 0x110(%r12), %esi
leaq 0x2b16(%rip), %rdx      # 0x77a0
leaq 0x2b13(%rip), %rcx      # 0x77a4
movl %ebx, %edi
callq 0x40c5
jmp 0x4d96
movl 0x110(%r12), %esi
decl %esi
pushq $0x1
popq %rbx
movl %ebx, %edi
callq 0x4143
jmp 0x4d56
movl 0x110(%r12), %esi
decl %esi
leaq 0x2a59(%rip), %rdx      # 0x7720
leaq 0x2a55(%rip), %rcx      # 0x7723
pushq $0x1
popq %rbx
movl %ebx, %edi
callq 0x40c5
movl 0x110(%r12), %esi
leaq 0x2a40(%rip), %rdx      # 0x7727
leaq 0x2a3c(%rip), %rcx      # 0x772a
movl %ebx, %edi
callq 0x40c5
movl 0x110(%r12), %esi
decl %esi
pushq $0x11
popq %rbx
movl %ebx, %edi
callq 0x4143
movl 0x110(%r12), %esi
leaq 0x2865(%rip), %rdx      # 0x757d
leaq 0x2861(%rip), %rcx      # 0x7580
movl %ebx, %edi
callq 0x40c5
movl 0x110(%r12), %esi
decl %esi
pushq $0x21
jmp 0x4d7f
movl 0x110(%r12), %esi
decl %esi
leaq 0x2a5c(%rip), %rdx      # 0x77a1
leaq 0x29cb(%rip), %rcx      # 0x7717
pushq $0x1
popq %rbx
movl %ebx, %edi
callq 0x40c5
movl 0x110(%r12), %esi
leaq 0x2818(%rip), %rdx      # 0x757d
leaq 0x2814(%rip), %rcx      # 0x7580
movl %ebx, %edi
callq 0x40c5
movl 0x110(%r12), %esi
decl %esi
pushq $0x11
popq %rbx
movl %ebx, %edi
callq 0x4143
movl 0x110(%r12), %esi
movl %ebx, %edi
callq 0x4143
callq 0x306a
cmpq $0x0, 0x10(%r14)
je 0x54e4
movq 0x628(%r12), %r15
pushq $0x1
popq %rdi
pushq $0x3
popq %rsi
callq 0x3078
movq 0x628(%r12), %rax
movzbl 0x29(%rax), %eax
movl 0x110(%r12), %ecx
xorl $0x1, %eax
leal (%rax,%rax,4), %eax
addl %ecx, %eax
addl $-0xa, %eax
testl %eax, %eax
movl $0x0, %ecx
movl %eax, 0x30(%rsp)
cmovgl %eax, %ecx
movq %rcx, 0x40(%rsp)
xorl %r13d, %r13d
xorl %ecx, %ecx
xorl %edx, %edx
movq %r12, 0x8(%rsp)
cmpq 0x40(%rsp), %rdx
je 0x5116
movq %r13, 0x28(%rsp)
movq 0x40(%r15), %rax
leaq (%rax,%rdx), %rbp
shlq $0x4, %rbp
cmpq 0x18(%r15), %rbp
jae 0x50ea
movq %rax, %r13
movq %rdx, 0x50(%rsp)
movl %ecx, 0x34(%rsp)
xorl %ebx, %ebx
xorl %edi, %edi
callq 0x3020
leaq 0x2977(%rip), %rdi      # 0x77b0
movl %ebp, %esi
xorl %eax, %eax
callq 0x2d2c
leaq 0x296d(%rip), %rdi      # 0x77b6
callq 0x2e2b
cmpl $0x0, 0x34(%r15)
jne 0x4e5d
movb 0x2(%r12), %bl
xorb $0x1, %bl
movq 0x18(%r15), %r14
movzbl %bl, %edi
callq 0x3020
movq %rbp, 0x48(%rsp)
subq %rbp, %r14
pushq $0x10
popq %rax
cmpq %rax, %r14
movq %rax, %r12
cmovbq %r14, %r12
shlq $0x4, %r13
addq 0x28(%rsp), %r13
movq %r13, 0x58(%rsp)
cmpq $0x10, %r14
cmovaeq %rax, %r14
xorl %ebp, %ebp
cmpq %rbp, %r14
je 0x4f83
movq 0x10(%r15), %rax
movq 0x58(%rsp), %rcx
leaq (%rcx,%rbp), %r13
movzbl (%rax,%r13), %ebx
cmpq $0x8, %rbp
jne 0x4ec5
leaq 0x2943(%rip), %rdi      # 0x7801
xorl %eax, %eax
callq 0x2d2c
cmpq 0x38(%r15), %r13
jne 0x4f34
movl %ebp, %eax
andl $0xf, %eax
movq %r13, %rsi
shrq $0x4, %rsi
subl 0x40(%r15), %esi
leal (%rax,%rax,2), %edi
cmpq $0x8, %rbp
sbbl $-0x1, %edi
addl $0xb, %edi
addl $0x3, %esi
callq 0x3078
movq 0x8(%rsp), %rax
cmpb $0x0, 0x1(%rax)
pushq $0x2b
popq %rsi
jne 0x4f17
cmpl $0x0, 0x34(%r15)
pushq $0x2f
popq %rsi
jne 0x4f17
movq 0x8(%rsp), %rax
movzbl 0x2(%rax), %eax
leal (%rax,%rax,4), %esi
addl $0x2a, %esi
pushq $0x1e
popq %rdi
callq 0x2ff2
xorl %edi, %edi
callq 0x3020
leaq 0x28d4(%rip), %rdi      # 0x7801
xorl %eax, %eax
callq 0x2d2c
leaq 0x287e(%rip), %rdi      # 0x77b9
movl %ebx, %esi
xorl %eax, %eax
callq 0x2d2c
cmpq 0x38(%r15), %r13
jne 0x4f6c
callq 0x305c
cmpl $0x0, 0x34(%r15)
je 0x4f5a
xorl %eax, %eax
jmp 0x4f64
movq 0x8(%rsp), %rax
movb 0x2(%rax), %al
xorb $0x1, %al
movzbl %al, %edi
callq 0x3020
leal -0x7f(%rbx), %eax
cmpb $-0x5f, %al
pushq $0x2e
popq %rax
cmovbl %eax, %ebx
movb %bl, 0x10(%rsp,%rbp)
incq %rbp
jmp 0x4e96
leaq 0x2875(%rip), %rbx      # 0x77ff
movq 0x28(%rsp), %r13
movq 0x48(%rsp), %r14
cmpq $0x10, %r12
jae 0x4fc3
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2d2c
cmpq $0x8, %r12
jne 0x4fb8
leaq 0x2850(%rip), %rdi      # 0x7801
xorl %eax, %eax
callq 0x2d2c
movb $0x20, 0x10(%rsp,%r12)
incq %r12
jmp 0x4f94
movb $0x0, 0x20(%rsp)
xorl %ebx, %ebx
xorl %edi, %edi
callq 0x3020
leaq 0x27de(%rip), %rdi      # 0x77b6
callq 0x2e2b
cmpl $0x1, 0x34(%r15)
movq 0x8(%rsp), %r12
jne 0x4ff1
movb 0x2(%r12), %bl
xorb $0x1, %bl
movzbl %bl, %edi
callq 0x3020
movq 0x38(%r15), %rax
movq %rax, %rbx
subq %r14, %rbx
setb %cl
addq $0x10, %r14
cmpq %r14, %rax
seta %al
orb %cl, %al
je 0x502c
leaq 0x27a4(%rip), %rdi      # 0x77bf
leaq 0x10(%rsp), %rsi
xorl %eax, %eax
callq 0x2d2c
jmp 0x50d3
leaq 0x253c(%rip), %rdi      # 0x756f
movl %ebx, %esi
leaq 0x10(%rsp), %rdx
xorl %eax, %eax
callq 0x2d2c
cmpl $0x1, 0x34(%r15)
pushq $0x2f
popq %rsi
jne 0x5057
movzbl 0x2(%r12), %eax
leal (%rax,%rax,4), %esi
addl $0x2a, %esi
pushq $0x1e
popq %rdi
callq 0x2ff2
xorl %r14d, %r14d
xorl %edi, %edi
callq 0x3020
movslq %ebx, %rbp
movsbl 0x10(%rsp,%rbp), %esi
leaq 0x2300(%rip), %rdi      # 0x7378
xorl %eax, %eax
callq 0x2d2c
callq 0x305c
cmpl $0x1, 0x34(%r15)
jne 0x5094
movb 0x2(%r12), %r14b
xorb $0x1, %r14b
movzbl %r14b, %edi
callq 0x3020
cmpl $0xf, %ebx
jg 0x50c0
pushq $0xf
popq %rsi
subl %ebx, %esi
leaq 0x11(%rsp), %rax
addq %rax, %rbp
leaq 0x24b9(%rip), %rdi      # 0x756f
movq %rbp, %rdx
xorl %eax, %eax
callq 0x2d2c
leaq 0x26fa(%rip), %rdi      # 0x77c1
xorl %eax, %eax
callq 0x2d2c
movq 0x28(%rsp), %r13
movq 0x50(%rsp), %rdx
incq %rdx
movl 0x34(%rsp), %ecx
decl %ecx
addq $0x10, %r13
jmp 0x4df7
movl 0x30(%rsp), %eax
cmpl %eax, %edx
cmovgl %edx, %eax
addl %ecx, %eax
leaq 0x26c5(%rip), %rbx      # 0x77c1
subl $0x1, %eax
jb 0x5116
movl %eax, %ebp
callq 0x306a
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2d2c
movl %ebp, %eax
jmp 0x50fc
movq 0x628(%r12), %r15
cmpb $0x1, 0x29(%r15)
jne 0x54e4
movl 0x110(%r12), %esi
addl $-0x7, %esi
pushq $0x1
popq %rbx
movl %ebx, %edi
callq 0x3078
callq 0x306a
movl 0x110(%r12), %esi
addl $-0x6, %esi
movl %ebx, %edi
callq 0x3078
leaq 0x2668(%rip), %rdi      # 0x77c4
xorl %eax, %eax
callq 0x2d2c
movq 0x38(%r15), %rsi
leaq 0x5(%rsp), %rdx
movq %r15, %rdi
callq 0x33d6
testb %al, %al
je 0x518d
cmpl $0x1, 0x30(%r15)
movsbl 0x5(%rsp), %esi
jne 0x51a4
leaq 0x2641(%rip), %rdi      # 0x77cc
jmp 0x51af
leaq 0x264e(%rip), %rdi      # 0x77e2
leaq 0x264c(%rip), %rsi      # 0x77e7
xorl %eax, %eax
callq 0x2d2c
jmp 0x51b6
movzbl %sil, %esi
leaq 0x2628(%rip), %rdi      # 0x77d7
xorl %eax, %eax
callq 0x2d2c
movl 0x110(%r12), %esi
addl $-0x6, %esi
pushq $0x11
popq %rdi
callq 0x3078
leaq 0x2619(%rip), %rdi      # 0x77e9
xorl %eax, %eax
callq 0x2d2c
movq 0x38(%r15), %rsi
leaq 0x3c(%rsp), %rdx
movq %r15, %rdi
callq 0x3424
testb %al, %al
je 0x5200
cmpl $0x1, 0x30(%r15)
movl 0x3c(%rsp), %esi
jne 0x5217
leaq 0x25f3(%rip), %rdi      # 0x77f1
jmp 0x521e
leaq 0x260e(%rip), %rdi      # 0x7815
leaq 0x25d9(%rip), %rsi      # 0x77e7
xorl %eax, %eax
callq 0x2d2c
jmp 0x5225
leaq 0x25e5(%rip), %rdi      # 0x7803
xorl %eax, %eax
callq 0x2d2c
movl 0x110(%r12), %esi
addl $-0x6, %esi
pushq $0x2f
popq %rdi
callq 0x3078
leaq 0x25dc(%rip), %rdi      # 0x781b
xorl %eax, %eax
callq 0x2d2c
movq 0x38(%r15), %rsi
leaq 0x38(%rsp), %rdx
movq %r15, %rdi
callq 0x347e
testb %al, %al
je 0x5271
cvtss2sd 0x38(%rsp), %xmm0
leaq 0x25bd(%rip), %rdi      # 0x7825
movb $0x1, %al
callq 0x2d2c
jmp 0x527f
leaq 0x256f(%rip), %rdi      # 0x77e7
xorl %eax, %eax
callq 0x2d2c
callq 0x306a
movl 0x110(%r12), %esi
addl $-0x5, %esi
pushq $0x1
popq %rdi
callq 0x3078
leaq 0x258a(%rip), %rdi      # 0x7828
xorl %eax, %eax
callq 0x2d2c
movq 0x38(%r15), %rsi
leaq 0x6(%rsp), %rdx
movq %r15, %rdi
callq 0x33f4
testb %al, %al
je 0x52cf
cmpl $0x1, 0x30(%r15)
movswl 0x6(%rsp), %esi
jne 0x52e6
leaq 0x2563(%rip), %rdi      # 0x7830
jmp 0x52f0
leaq 0x256a(%rip), %rdi      # 0x7840
leaq 0x250a(%rip), %rsi      # 0x77e7
xorl %eax, %eax
callq 0x2d2c
jmp 0x52f7
movzwl %si, %esi
leaq 0x2548(%rip), %rdi      # 0x7838
xorl %eax, %eax
callq 0x2d2c
movl 0x110(%r12), %esi
addl $-0x5, %esi
pushq $0x11
popq %rdi
callq 0x3078
leaq 0x2534(%rip), %rdi      # 0x7845
xorl %eax, %eax
callq 0x2d2c
movq 0x38(%r15), %rsi
leaq 0x10(%rsp), %rdx
movq %r15, %rdi
callq 0x344f
testb %al, %al
je 0x5342
cmpl $0x1, 0x30(%r15)
movq 0x10(%rsp), %rsi
jne 0x5352
leaq 0x250d(%rip), %rdi      # 0x784d
jmp 0x5359
leaq 0x2518(%rip), %rdi      # 0x7861
leaq 0x2497(%rip), %rsi      # 0x77e7
jmp 0x5359
leaq 0x24fe(%rip), %rdi      # 0x7857
xorl %eax, %eax
callq 0x2d2c
movl 0x110(%r12), %esi
addl $-0x5, %esi
pushq $0x2f
popq %rdi
callq 0x3078
leaq 0x24ed(%rip), %rdi      # 0x7867
xorl %eax, %eax
callq 0x2d2c
movq 0x38(%r15), %rsi
leaq 0x60(%rsp), %rdx
movq %r15, %rdi
callq 0x34d2
testb %al, %al
je 0x53ac
movsd 0x60(%rsp), %xmm0
leaq 0x2482(%rip), %rdi      # 0x7825
movb $0x1, %al
callq 0x2d2c
jmp 0x53ba
leaq 0x2434(%rip), %rdi      # 0x77e7
xorl %eax, %eax
callq 0x2d2c
callq 0x306a
movl 0x110(%r12), %esi
addl $-0x4, %esi
pushq $0x1
popq %rdi
callq 0x3078
cmpl $0x0, 0x2c(%r15)
leaq 0x2493(%rip), %rax      # 0x7871
leaq 0x249c(%rip), %r13      # 0x7881
cmoveq %rax, %r13
leaq 0x240e(%rip), %rbx      # 0x77fe
leaq 0x240a(%rip), %r14      # 0x7801
cmovneq %rbx, %r14
pushq $0x1e
popq %rbp
pushq $0x2f
popq %r12
movl %ebp, %edi
movl %r12d, %esi
callq 0x2ff2
movq %r13, %rdi
xorl %eax, %eax
callq 0x2d2c
callq 0x305c
movq %r14, %rdi
xorl %eax, %eax
callq 0x2d2c
movq 0x8(%rsp), %rax
movl 0x110(%rax), %esi
addl $-0x4, %esi
pushq $0x11
popq %rdi
callq 0x3078
cmpl $0x0, 0x30(%r15)
leaq 0x2447(%rip), %rax      # 0x788e
leaq 0x244b(%rip), %r14      # 0x7899
cmoveq %rax, %r14
leaq 0x23a7(%rip), %r15      # 0x7800
cmovneq %rbx, %r15
movl %ebp, %edi
movl %r12d, %esi
movq 0x8(%rsp), %r12
callq 0x2ff2
movq %r14, %rdi
xorl %eax, %eax
callq 0x2d2c
callq 0x305c
movq %r15, %rdi
xorl %eax, %eax
callq 0x2d2c
callq 0x306a
movl 0x110(%r12), %esi
addl $-0x4, %esi
leaq 0x2406(%rip), %rdx      # 0x78a2
leaq 0x2403(%rip), %rcx      # 0x78a6
pushq $0x31
popq %rdi
callq 0x40c5
movl 0x110(%r12), %esi
addl $-0x4, %esi
leaq 0x23f4(%rip), %rdx      # 0x78b1
leaq 0x23f1(%rip), %rcx      # 0x78b5
pushq $0x41
popq %rdi
callq 0x40c5
movl 0x110(%r12), %esi
addl $-0x3, %esi
pushq $0x1
popq %rdi
callq 0x3078
callq 0x306a
callq 0x2cbb
movb $0x0, 0x115(%r12)
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq