// File: /workspace/github_c_makefile_star2_O0/neovim[P]libvterm/src/screen.c
// Function: attrs_differ
static int attrs_differ(VTermAttrMask attrs, ScreenCell *a, ScreenCell *b)
{
  if((attrs & VTERM_ATTR_BOLD_MASK)       && (a->pen.bold != b->pen.bold))
    return 1;
  if((attrs & VTERM_ATTR_UNDERLINE_MASK)  && (a->pen.underline != b->pen.underline))
    return 1;
  if((attrs & VTERM_ATTR_ITALIC_MASK)     && (a->pen.italic != b->pen.italic))
    return 1;
  if((attrs & VTERM_ATTR_BLINK_MASK)      && (a->pen.blink != b->pen.blink))
    return 1;
  if((attrs & VTERM_ATTR_REVERSE_MASK)    && (a->pen.reverse != b->pen.reverse))
    return 1;
  if((attrs & VTERM_ATTR_CONCEAL_MASK)    && (a->pen.conceal != b->pen.conceal))
    return 1;
  if((attrs & VTERM_ATTR_STRIKE_MASK)     && (a->pen.strike != b->pen.strike))
    return 1;
  if((attrs & VTERM_ATTR_FONT_MASK)       && (a->pen.font != b->pen.font))
    return 1;
  if((attrs & VTERM_ATTR_FOREGROUND_MASK) && !vterm_color_is_equal(&a->pen.fg, &b->pen.fg))
    return 1;
  if((attrs & VTERM_ATTR_BACKGROUND_MASK) && !vterm_color_is_equal(&a->pen.bg, &b->pen.bg))
    return 1;
  if((attrs & VTERM_ATTR_SMALL_MASK)    && (a->pen.small != b->pen.small))
    return 1;
  if((attrs & VTERM_ATTR_BASELINE_MASK)    && (a->pen.baseline != b->pen.baseline))
    return 1;

  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl -0x8(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x71d2
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
andl $0x1, %eax
movq -0x18(%rbp), %rcx
movl 0x20(%rcx), %ecx
andl $0x1, %ecx
cmpl %ecx, %eax
je 0x71d2
movl $0x1, -0x4(%rbp)
jmp 0x741f
movl -0x8(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x7205
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
shrl %eax
andl $0x3, %eax
movq -0x18(%rbp), %rcx
movl 0x20(%rcx), %ecx
shrl %ecx
andl $0x3, %ecx
cmpl %ecx, %eax
je 0x7205
movl $0x1, -0x4(%rbp)
jmp 0x741f
movl -0x8(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x723a
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
shrl $0x3, %eax
andl $0x1, %eax
movq -0x18(%rbp), %rcx
movl 0x20(%rcx), %ecx
shrl $0x3, %ecx
andl $0x1, %ecx
cmpl %ecx, %eax
je 0x723a
movl $0x1, -0x4(%rbp)
jmp 0x741f
movl -0x8(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x726f
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
shrl $0x4, %eax
andl $0x1, %eax
movq -0x18(%rbp), %rcx
movl 0x20(%rcx), %ecx
shrl $0x4, %ecx
andl $0x1, %ecx
cmpl %ecx, %eax
je 0x726f
movl $0x1, -0x4(%rbp)
jmp 0x741f
movl -0x8(%rbp), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x72a4
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
shrl $0x5, %eax
andl $0x1, %eax
movq -0x18(%rbp), %rcx
movl 0x20(%rcx), %ecx
shrl $0x5, %ecx
andl $0x1, %ecx
cmpl %ecx, %eax
je 0x72a4
movl $0x1, -0x4(%rbp)
jmp 0x741f
movl -0x8(%rbp), %eax
andl $0x200, %eax            # imm = 0x200
cmpl $0x0, %eax
je 0x72db
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
shrl $0x6, %eax
andl $0x1, %eax
movq -0x18(%rbp), %rcx
movl 0x20(%rcx), %ecx
shrl $0x6, %ecx
andl $0x1, %ecx
cmpl %ecx, %eax
je 0x72db
movl $0x1, -0x4(%rbp)
jmp 0x741f
movl -0x8(%rbp), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0x7310
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
shrl $0x7, %eax
andl $0x1, %eax
movq -0x18(%rbp), %rcx
movl 0x20(%rcx), %ecx
shrl $0x7, %ecx
andl $0x1, %ecx
cmpl %ecx, %eax
je 0x7310
movl $0x1, -0x4(%rbp)
jmp 0x741f
movl -0x8(%rbp), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x7345
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
shrl $0x8, %eax
andl $0xf, %eax
movq -0x18(%rbp), %rcx
movl 0x20(%rcx), %ecx
shrl $0x8, %ecx
andl $0xf, %ecx
cmpl %ecx, %eax
je 0x7345
movl $0x1, -0x4(%rbp)
jmp 0x741f
movl -0x8(%rbp), %eax
andl $0x80, %eax
cmpl $0x0, %eax
je 0x7378
movq -0x10(%rbp), %rdi
addq $0x18, %rdi
movq -0x18(%rbp), %rsi
addq $0x18, %rsi
callq 0x20c0
cmpl $0x0, %eax
jne 0x7378
movl $0x1, -0x4(%rbp)
jmp 0x741f
movl -0x8(%rbp), %eax
andl $0x100, %eax            # imm = 0x100
cmpl $0x0, %eax
je 0x73b0
movq -0x10(%rbp), %rdi
addq $0x18, %rdi
addq $0x4, %rdi
movq -0x18(%rbp), %rsi
addq $0x18, %rsi
addq $0x4, %rsi
callq 0x20c0
cmpl $0x0, %eax
jne 0x73b0
movl $0x1, -0x4(%rbp)
jmp 0x741f
movl -0x8(%rbp), %eax
andl $0x400, %eax            # imm = 0x400
cmpl $0x0, %eax
je 0x73e4
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
shrl $0xc, %eax
andl $0x1, %eax
movq -0x18(%rbp), %rcx
movl 0x20(%rcx), %ecx
shrl $0xc, %ecx
andl $0x1, %ecx
cmpl %ecx, %eax
je 0x73e4
movl $0x1, -0x4(%rbp)
jmp 0x741f
movl -0x8(%rbp), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x7418
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
shrl $0xd, %eax
andl $0x3, %eax
movq -0x18(%rbp), %rcx
movl 0x20(%rcx), %ecx
shrl $0xd, %ecx
andl $0x3, %ecx
cmpl %ecx, %eax
je 0x7418
movl $0x1, -0x4(%rbp)
jmp 0x741f
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)