// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/libraries/libwebp/src/dec/vp8_dec.c
// Function: ParseSegmentHeader
static int ParseSegmentHeader(VP8BitReader* br,
                              VP8SegmentHeader* hdr, VP8Proba* proba) {
  assert(br != NULL);
  assert(hdr != NULL);
  hdr->use_segment_ = VP8Get(br, "global-header");
  if (hdr->use_segment_) {
    hdr->update_map_ = VP8Get(br, "global-header");
    if (VP8Get(br, "global-header")) {   // update data
      int s;
      hdr->absolute_delta_ = VP8Get(br, "global-header");
      for (s = 0; s < NUM_MB_SEGMENTS; ++s) {
        hdr->quantizer_[s] = VP8Get(br, "global-header") ?
            VP8GetSignedValue(br, 7, "global-header") : 0;
      }
      for (s = 0; s < NUM_MB_SEGMENTS; ++s) {
        hdr->filter_strength_[s] = VP8Get(br, "global-header") ?
            VP8GetSignedValue(br, 6, "global-header") : 0;
      }
    }
    if (hdr->update_map_) {
      int s;
      for (s = 0; s < MB_FEATURE_TREE_PROBS; ++s) {
        proba->segments_[s] = VP8Get(br, "global-header") ?
            VP8GetValue(br, 8, "global-header") : 255u;
      }
    }
  } else {
    hdr->update_map_ = 0;
  }
  return !br->eof_;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x142d8d
jmp 0x142dac
leaq 0x7a4d5(%rip), %rdi     # 0x1bd269
leaq 0x7a2ce(%rip), %rsi     # 0x1bd069
movl $0xa4, %edx
leaq 0x7a4cd(%rip), %rcx     # 0x1bd274
callq 0x598a0
cmpq $0x0, -0x10(%rbp)
je 0x142db5
jmp 0x142dd4
leaq 0x7a470(%rip), %rdi     # 0x1bd22c
leaq 0x7a2a6(%rip), %rsi     # 0x1bd069
movl $0xa5, %edx
leaq 0x7a4a5(%rip), %rcx     # 0x1bd274
callq 0x598a0
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x181ef0
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, (%rax)
je 0x142f50
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x181ef0
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x181ef0
cmpl $0x0, %eax
je 0x142eea
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x181ef0
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x8(%rax)
movl $0x0, -0x1c(%rbp)
cmpl $0x4, -0x1c(%rbp)
jge 0x142e92
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x181ef0
cmpl $0x0, %eax
je 0x142e6f
movq -0x8(%rbp), %rdi
movl $0x7, %esi
callq 0x182020
movl %eax, -0x24(%rbp)
jmp 0x142e76
xorl %eax, %eax
movl %eax, -0x24(%rbp)
jmp 0x142e76
movl -0x24(%rbp), %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movb %dl, 0xc(%rax,%rcx)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x142e43
movl $0x0, -0x1c(%rbp)
cmpl $0x4, -0x1c(%rbp)
jge 0x142ee8
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x181ef0
cmpl $0x0, %eax
je 0x142ec5
movq -0x8(%rbp), %rdi
movl $0x6, %esi
callq 0x182020
movl %eax, -0x28(%rbp)
jmp 0x142ecc
xorl %eax, %eax
movl %eax, -0x28(%rbp)
jmp 0x142ecc
movl -0x28(%rbp), %eax
movb %al, %dl
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movb %dl, 0x10(%rax,%rcx)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x142e99
jmp 0x142eea
movq -0x10(%rbp), %rax
cmpl $0x0, 0x4(%rax)
je 0x142f4e
movl $0x0, -0x20(%rbp)
cmpl $0x3, -0x20(%rbp)
jge 0x142f4c
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x181ef0
cmpl $0x0, %eax
je 0x142f27
movq -0x8(%rbp), %rdi
movl $0x8, %esi
callq 0x181ef0
movl %eax, -0x2c(%rbp)
jmp 0x142f31
movl $0xff, %eax
movl %eax, -0x2c(%rbp)
jmp 0x142f31
movl -0x2c(%rbp), %eax
movb %al, %dl
movq -0x18(%rbp), %rax
movslq -0x20(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x142efb
jmp 0x142f4e
jmp 0x142f5b
movq -0x10(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x28(%rax)
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)