// File: /workspace/github_c_makefile_star2_O3/enzo1982[P]smooth/libraries/libwebp/src/dec/vp8_dec.c
// Function: GetCoeffsFast
static int GetCoeffsFast(VP8BitReader* const br,
                         const VP8BandProbas* const prob[],
                         int ctx, const quant_t dq, int n, int16_t* out) {
  const uint8_t* p = prob[n]->probas_[ctx];
  for (; n < 16; ++n) {
    if (!VP8GetBit(br, p[0], "coeffs")) {
      return n;  // previous coeff was last non-zero coeff
    }
    while (!VP8GetBit(br, p[1], "coeffs")) {       // sequence of zero coeffs
      p = prob[++n]->probas_[0];
      if (n == 16) return 16;
    }
    {        // non zero coeff
      const VP8ProbaArray* const p_ctx = &prob[n + 1]->probas_[0];
      int v;
      if (!VP8GetBit(br, p[2], "coeffs")) {
        v = 1;
        p = p_ctx[1];
      } else {
        v = GetLargeValue(br, p);
        p = p_ctx[2];
      }
      out[kZigzag[n]] = VP8GetSigned(br, v, "coeffs") * dq[n > 0];
    }
  }
  return 16;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl $0x10, %eax
cmpl $0xf, %r8d
jg 0xd2e8b
movq %r9, %r12
movl %r8d, %ebp
movq %rcx, %r14
movq %rdi, %r13
movslq %r8d, %rax
movslq %edx, %rcx
leaq (%rcx,%rcx,4), %rdx
leaq (%rcx,%rdx,2), %r11
addq (%rsi,%rax,8), %r11
movl 0x8(%rdi), %ebx
movl 0xc(%rdi), %r9d
movabsq $0x100000000, %r10      # imm = 0x100000000
movq %rsi, 0x8(%rsp)
movq %r12, 0x20(%rsp)
movq %r14, 0x10(%rsp)
movzbl (%r11), %r14d
testl %r9d, %r9d
jns 0xd2b7c
movq 0x10(%r13), %rax
testq %rax, %rax
je 0xd2e9e
cmpq 0x20(%r13), %rax
jae 0xd2b5b
movq (%rax), %rcx
addq $0x7, %rax
movq %rax, 0x10(%r13)
bswapq %rcx
shldq $0x38, %rcx, (%r13)
addl $0x38, %r9d
jmp 0xd2b7c
movq %r13, %rdi
movq %r11, %r15
callq 0xefba6
movq %r15, %r11
movabsq $0x100000000, %r10      # imm = 0x100000000
movq 0x8(%rsp), %rsi
movl 0xc(%r13), %r9d
imull %ebx, %r14d
shrl $0x8, %r14d
movq (%r13), %rdi
movl %r9d, %eax
movq %rdi, %rdx
movl %r9d, %ecx
shrq %cl, %rdx
cmpl %edx, %r14d
jae 0xd2bb0
movl %r14d, %r8d
incq %r8
movl %eax, %ecx
shlq %cl, %r8
subl %r14d, %ebx
subq %r8, %rdi
movq %rdi, (%r13)
jmp 0xd2bb4
leal 0x1(%r14), %ebx
bsrl %ebx, %ecx
xorl $0x7, %ecx
shll %cl, %ebx
subl %ecx, %eax
decl %ebx
movl %eax, 0xc(%r13)
movl %ebx, 0x8(%r13)
cmpl %edx, %r14d
jae 0xd2e9a
movslq %ebp, %r15
movq %r15, %r12
shlq $0x20, %r12
leal 0x1(%r15), %ebp
movzbl 0x1(%r11), %r14d
testl %eax, %eax
jns 0xd2c4a
movq 0x10(%r13), %rcx
testq %rcx, %rcx
je 0xd2e9e
cmpq 0x20(%r13), %rcx
jae 0xd2c17
movq (%rcx), %rdx
addq $0x7, %rcx
movq %rcx, 0x10(%r13)
bswapq %rdx
shldq $0x38, %rdx, %rdi
movq %rdi, (%r13)
addl $0x38, %eax
jmp 0xd2c4a
movq %r13, %rdi
movl %ebp, 0x4(%rsp)
movq %r13, %rbp
movq %r11, %r13
callq 0xefba6
movq %r13, %r11
movq %rbp, %r13
movl 0x4(%rsp), %ebp
movabsq $0x100000000, %r10      # imm = 0x100000000
movq 0x8(%rsp), %rsi
movl 0xc(%r13), %eax
movq (%r13), %rdi
imull %ebx, %r14d
shrl $0x8, %r14d
movl %eax, %edx
movq %rdi, %r8
movl %eax, %ecx
shrq %cl, %r8
cmpl %r8d, %r14d
jae 0xd2c78
movl %r14d, %eax
incq %rax
movl %edx, %ecx
shlq %cl, %rax
subl %r14d, %ebx
subq %rax, %rdi
movq %rdi, (%r13)
jmp 0xd2c7c
leal 0x1(%r14), %ebx
bsrl %ebx, %ecx
xorl $0x7, %ecx
shll %cl, %ebx
movl %edx, %eax
subl %ecx, %eax
decl %ebx
movl %eax, 0xc(%r13)
movl %ebx, 0x8(%r13)
cmpl %r8d, %r14d
jb 0xd2cb3
movq 0x8(%rsi,%r15,8), %r11
incq %r15
addq %r10, %r12
incl %ebp
cmpq $0x10, %r15
jne 0xd2bdf
jmp 0xd2e86
movslq %ebp, %rcx
movq (%rsi,%rcx,8), %r9
movzbl 0x2(%r11), %r14d
testl %eax, %eax
jns 0xd2d2f
movq 0x10(%r13), %rcx
testq %rcx, %rcx
je 0xd2e9e
cmpq 0x20(%r13), %rcx
jae 0xd2cf2
movq (%rcx), %rdx
addq $0x7, %rcx
movq %rcx, 0x10(%r13)
bswapq %rdx
shldq $0x38, %rdx, %rdi
movq %rdi, (%r13)
addl $0x38, %eax
jmp 0xd2d2f
movq %r13, %rdi
movl %ebp, 0x4(%rsp)
movq %r13, 0x18(%rsp)
movq %r11, %r13
movq %r9, %rbp
callq 0xefba6
movq %rbp, %r9
movq %r13, %r11
movq 0x18(%rsp), %r13
movl 0x4(%rsp), %ebp
movabsq $0x100000000, %r10      # imm = 0x100000000
movq 0x8(%rsp), %rsi
movl 0xc(%r13), %eax
movq (%r13), %rdi
imull %ebx, %r14d
shrl $0x8, %r14d
movl %eax, %edx
movq %rdi, %r8
movl %eax, %ecx
shrq %cl, %r8
cmpl %r8d, %r14d
jae 0xd2d5d
movl %r14d, %eax
incq %rax
movl %edx, %ecx
shlq %cl, %rax
subl %r14d, %ebx
subq %rax, %rdi
movq %rdi, (%r13)
jmp 0xd2d61
leal 0x1(%r14), %ebx
bsrl %ebx, %ecx
xorl $0x7, %ecx
shll %cl, %ebx
subl %ecx, %edx
decl %ebx
movl %edx, 0xc(%r13)
movl %ebx, 0x8(%r13)
cmpl %r8d, %r14d
jae 0xd2da4
movq %r13, %rdi
movq %r11, %rsi
movq %r9, %rbx
callq 0xd2ebd
movabsq $0x100000000, %r10      # imm = 0x100000000
movq 0x8(%rsp), %rsi
addq $0x16, %rbx
movl 0xc(%r13), %edx
movq %rbx, %r11
jmp 0xd2db0
addq $0xb, %r9
movl $0x1, %eax
movq %r9, %r11
movq 0x10(%rsp), %r14
testl %edx, %edx
movl %eax, 0x4(%rsp)
jns 0xd2e0a
movq 0x10(%r13), %rdi
testq %rdi, %rdi
je 0xd2e9e
cmpq 0x20(%r13), %rdi
jae 0xd2de9
movq (%rdi), %rcx
addq $0x7, %rdi
movq %rdi, 0x10(%r13)
bswapq %rcx
shldq $0x38, %rcx, (%r13)
addl $0x38, %edx
jmp 0xd2e0a
movq %r13, %rdi
movq %r11, %rbx
callq 0xefba6
movq %rbx, %r11
movabsq $0x100000000, %r10      # imm = 0x100000000
movq 0x8(%rsp), %rsi
movl 0xc(%r13), %edx
movl 0x8(%r13), %ebx
movl %ebx, %eax
shrl %eax
movq (%r13), %rdi
movq %rdi, %r9
movl %edx, %ecx
shrq %cl, %r9
movl %eax, %r8d
subl %r9d, %r8d
sarl $0x1f, %r8d
movl %edx, %r9d
decl %r9d
movl %r9d, 0xc(%r13)
addl %r8d, %ebx
orl $0x1, %ebx
movl %ebx, 0x8(%r13)
incl %eax
andl %r8d, %eax
shlq %cl, %rax
subq %rax, %rdi
movq %rdi, (%r13)
movl 0x4(%rsp), %ecx
xorl %r8d, %ecx
subl %r8d, %ecx
xorl %eax, %eax
testq %r15, %r15
setg %al
imull (%r14,%rax,4), %ecx
sarq $0x20, %r12
leaq 0x56643(%rip), %rax     # 0x1294b0
movzbl (%r12,%rax), %eax
movq 0x20(%rsp), %r12
movw %cx, (%r12,%rax,2)
cmpq $0xf, %r15
jl 0xd2b25
movl $0x10, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl %ebp, %eax
jmp 0xd2e8b
leaq 0x5681b(%rip), %rdi     # 0x1296c0
leaq 0x56833(%rip), %rsi     # 0x1296df
leaq 0x56897(%rip), %rcx     # 0x12974a
movl $0x3b, %edx
callq 0x55710