// File: /workspace/github_c_makefile_star2_O0/archer1357[P]Offline-Raytracer/stb_image.c
// Function: stbi__parse_huffman_block
static int stbi__parse_huffman_block(stbi__zbuf *a)
{
   for(;;) {
      int z = stbi__zhuffman_decode(a, &a->z_length);
      if (z < 256) {
         if (z < 0) return stbi__err("bad huffman code","Corrupt PNG"); // error in huffman codes
         if (a->zout >= a->zout_end) if (!stbi__zexpand(a, 1)) return 0;
         *a->zout++ = (char) z;
      } else {
         stbi_uc *p;
         int len,dist;
         if (z == 256) return 1;
         z -= 257;
         len = stbi__zlength_base[z];
         if (stbi__zlength_extra[z]) len += stbi__zreceive(a, stbi__zlength_extra[z]);
         z = stbi__zhuffman_decode(a, &a->z_distance);
         if (z < 0) return stbi__err("bad huffman code","Corrupt PNG");
         dist = stbi__zdist_base[z];
         if (stbi__zdist_extra[z]) dist += stbi__zreceive(a, stbi__zdist_extra[z]);
         if (a->zout - a->zout_start < dist) return stbi__err("bad dist","Corrupt PNG");
         if (a->zout + len > a->zout_end) if (!stbi__zexpand(a, len)) return 0;
         p = (stbi_uc *) (a->zout - dist);
         while (len--)
            *a->zout++ = *p++;
      }
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x34, %rsi
callq 0x41d930
movl %eax, -0x14(%rbp)
cmpl $0x100, -0x14(%rbp)     # imm = 0x100
jge 0x41d515
cmpl $0x0, -0x14(%rbp)
jge 0x41d4c3
leaq 0xc8091(%rip), %rdi     # 0x4e5547
callq 0x411080
movl %eax, -0x4(%rbp)
jmp 0x41d6a0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq 0x28(%rcx), %rax
jb 0x41d4f6
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x41d780
cmpl $0x0, %eax
jne 0x41d4f4
movl $0x0, -0x4(%rbp)
jmp 0x41d6a0
jmp 0x41d4f6
movl -0x14(%rbp), %eax
movb %al, %cl
movq -0x10(%rbp), %rdx
movq 0x18(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x18(%rdx)
movb %cl, (%rax)
jmp 0x41d69b
cmpl $0x100, -0x14(%rbp)     # imm = 0x100
jne 0x41d52a
movl $0x1, -0x4(%rbp)
jmp 0x41d6a0
movl -0x14(%rbp), %eax
subl $0x101, %eax            # imm = 0x101
movl %eax, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0x108e40(%rip), %rax    # 0x526380
movl (%rax,%rcx,4), %eax
movl %eax, -0x24(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0x108eaf(%rip), %rax    # 0x526400
cmpl $0x0, (%rax,%rcx,4)
je 0x41d574
movq -0x10(%rbp), %rdi
movslq -0x14(%rbp), %rcx
leaq 0x108e9a(%rip), %rax    # 0x526400
movl (%rax,%rcx,4), %esi
callq 0x41cb20
addl -0x24(%rbp), %eax
movl %eax, -0x24(%rbp)
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x818, %rsi            # imm = 0x818
callq 0x41d930
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jge 0x41d5a5
leaq 0xc7faf(%rip), %rdi     # 0x4e5547
callq 0x411080
movl %eax, -0x4(%rbp)
jmp 0x41d6a0
movslq -0x14(%rbp), %rcx
leaq 0x108ed0(%rip), %rax    # 0x526480
movl (%rax,%rcx,4), %eax
movl %eax, -0x28(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0x108f3f(%rip), %rax    # 0x526500
cmpl $0x0, (%rax,%rcx,4)
je 0x41d5e4
movq -0x10(%rbp), %rdi
movslq -0x14(%rbp), %rcx
leaq 0x108f2a(%rip), %rax    # 0x526500
movl (%rax,%rcx,4), %esi
callq 0x41cb20
addl -0x28(%rbp), %eax
movl %eax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x20(%rcx), %rcx
subq %rcx, %rax
movslq -0x28(%rbp), %rcx
cmpq %rcx, %rax
jge 0x41d614
leaq 0xc8634(%rip), %rdi     # 0x4e5c3b
callq 0x411080
movl %eax, -0x4(%rbp)
jmp 0x41d6a0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movslq -0x24(%rbp), %rcx
addq %rcx, %rax
movq -0x10(%rbp), %rcx
cmpq 0x28(%rcx), %rax
jbe 0x41d649
movq -0x10(%rbp), %rdi
movl -0x24(%rbp), %esi
callq 0x41d780
cmpl $0x0, %eax
jne 0x41d647
movl $0x0, -0x4(%rbp)
jmp 0x41d6a0
jmp 0x41d649
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movslq -0x28(%rbp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movl -0x24(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x24(%rbp)
cmpl $0x0, %eax
je 0x41d699
movq -0x20(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x20(%rbp)
movb (%rax), %cl
movq -0x10(%rbp), %rdx
movq 0x18(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x18(%rdx)
movb %cl, (%rax)
jmp 0x41d661
jmp 0x41d69b
jmp 0x41d48c
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)