// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/libraries/libwebp/src/dsp/dec.c
// Function: NeedsFilter2_C
static WEBP_INLINE int NeedsFilter2_C(const uint8_t* p,
                                      int step, int t, int it) {
  const int p3 = p[-4 * step], p2 = p[-3 * step], p1 = p[-2 * step];
  const int p0 = p[-step], q0 = p[0];
  const int q1 = p[step], q2 = p[2 * step], q3 = p[3 * step];
  if ((4 * VP8kabs0[p0 - q0] + VP8kabs0[p1 - q1]) > t) return 0;
  return VP8kabs0[p3 - p2] <= it && VP8kabs0[p2 - p1] <= it &&
         VP8kabs0[p1 - p0] <= it && VP8kabs0[q3 - q2] <= it &&
         VP8kabs0[q2 - q1] <= it && VP8kabs0[q1 - q0] <= it;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x10(%rbp), %rax
imull $0xfffffffc, -0x14(%rbp), %ecx # imm = 0xFFFFFFFC
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x20(%rbp)
movq -0x10(%rbp), %rax
imull $0xfffffffd, -0x14(%rbp), %ecx # imm = 0xFFFFFFFD
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x24(%rbp)
movq -0x10(%rbp), %rax
imull $0xfffffffe, -0x14(%rbp), %ecx # imm = 0xFFFFFFFE
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x28(%rbp)
movq -0x10(%rbp), %rax
xorl %ecx, %ecx
subl -0x14(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x34(%rbp)
movq -0x10(%rbp), %rax
movl -0x14(%rbp), %ecx
shll %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x38(%rbp)
movq -0x10(%rbp), %rax
imull $0x3, -0x14(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0x3c(%rbp)
leaq 0xbb500(%rip), %rax     # 0x207fb8
movq (%rax), %rax
movl -0x2c(%rbp), %ecx
subl -0x30(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
shll $0x2, %eax
leaq 0xbb4e6(%rip), %rcx     # 0x207fb8
movq (%rcx), %rcx
movl -0x28(%rbp), %edx
subl -0x34(%rbp), %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
cmpl -0x18(%rbp), %eax
jle 0x14caf5
movl $0x0, -0x4(%rbp)
jmp 0x14cbcd
leaq 0xbb4bc(%rip), %rax     # 0x207fb8
movq (%rax), %rax
movl -0x20(%rbp), %ecx
subl -0x24(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl -0x1c(%rbp), %ecx
movb %al, -0x3d(%rbp)
jg 0x14cbc2
leaq 0xbb497(%rip), %rax     # 0x207fb8
movq (%rax), %rax
movl -0x24(%rbp), %ecx
subl -0x28(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl -0x1c(%rbp), %ecx
movb %al, -0x3d(%rbp)
jg 0x14cbc2
leaq 0xbb472(%rip), %rax     # 0x207fb8
movq (%rax), %rax
movl -0x28(%rbp), %ecx
subl -0x2c(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl -0x1c(%rbp), %ecx
movb %al, -0x3d(%rbp)
jg 0x14cbc2
leaq 0xbb451(%rip), %rax     # 0x207fb8
movq (%rax), %rax
movl -0x3c(%rbp), %ecx
subl -0x38(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl -0x1c(%rbp), %ecx
movb %al, -0x3d(%rbp)
jg 0x14cbc2
leaq 0xbb430(%rip), %rax     # 0x207fb8
movq (%rax), %rax
movl -0x38(%rbp), %ecx
subl -0x34(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl -0x1c(%rbp), %ecx
movb %al, -0x3d(%rbp)
jg 0x14cbc2
leaq 0xbb40f(%rip), %rax     # 0x207fb8
movq (%rax), %rax
movl -0x34(%rbp), %ecx
subl -0x30(%rbp), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
cmpl -0x1c(%rbp), %eax
setle %al
movb %al, -0x3d(%rbp)
movb -0x3d(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)