// File: /workspace/github_c_makefile_star2_O0/zhiyb[P]png2tlg/./stb_image.h
// Function: stbi__parse_uncompressed_block(stbi__zbuf*)
static int stbi__parse_uncompressed_block(stbi__zbuf *a)
{
   stbi_uc header[4];
   int len,nlen,k;
   if (a->num_bits & 7)
      stbi__zreceive(a, a->num_bits & 7); // discard
   // drain the bit-packed data into header
   k = 0;
   while (a->num_bits > 0) {
      header[k++] = (stbi_uc) (a->code_buffer & 255); // suppress MSVC run-time check
      a->code_buffer >>= 8;
      a->num_bits -= 8;
   }
   STBI_ASSERT(a->num_bits == 0);
   // now fill header the normal way
   while (k < 4)
      header[k++] = stbi__zget8(a);
   len  = header[1] * 256 + header[0];
   nlen = header[3] * 256 + header[2];
   if (nlen != (len ^ 0xffff)) return stbi__err("zlib corrupt","Corrupt PNG");
   if (a->zbuffer + len > a->zbuffer_end) return stbi__err("read past buffer","Corrupt PNG");
   if (a->zout + len > a->zout_end)
      if (!stbi__zexpand(a, a->zout, len)) return 0;
   memcpy(a->zout, a->zbuffer, len);
   a->zbuffer += len;
   a->zout += len;
   return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movl 0x10(%rax), %eax
andl $0x7, %eax
cmpl $0x0, %eax
je 0x1d46e
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x10(%rax), %esi
andl $0x7, %esi
callq 0x1d3d0
movl $0x0, -0x20(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x10(%rax)
jle 0x1d4ba
movq -0x10(%rbp), %rax
movl 0x14(%rax), %eax
andl $0xff, %eax
movb %al, %cl
movl -0x20(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x20(%rbp)
cltq
movb %cl, -0x14(%rbp,%rax)
movq -0x10(%rbp), %rax
movl 0x14(%rax), %ecx
shrl $0x8, %ecx
movl %ecx, 0x14(%rax)
movq -0x10(%rbp), %rax
movl 0x10(%rax), %ecx
subl $0x8, %ecx
movl %ecx, 0x10(%rax)
jmp 0x1d475
movq -0x10(%rbp), %rax
cmpl $0x0, 0x10(%rax)
jne 0x1d4c6
jmp 0x1d4e5
leaq 0x3cfa(%rip), %rdi      # 0x211c7
leaq 0x3302(%rip), %rsi      # 0x207d6
movl $0x1034, %edx           # imm = 0x1034
leaq 0x3cf8(%rip), %rcx      # 0x211d8
callq 0x2140
jmp 0x1d4e7
cmpl $0x4, -0x20(%rbp)
jge 0x1d50b
movq -0x10(%rbp), %rdi
callq 0x1df00
movb %al, %cl
movl -0x20(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x20(%rbp)
cltq
movb %cl, -0x14(%rbp,%rax)
jmp 0x1d4e7
movzbl -0x13(%rbp), %eax
shll $0x8, %eax
movzbl -0x14(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x18(%rbp)
movzbl -0x11(%rbp), %eax
shll $0x8, %eax
movzbl -0x12(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movl -0x18(%rbp), %ecx
xorl $0xffff, %ecx           # imm = 0xFFFF
cmpl %ecx, %eax
je 0x1d54f
leaq 0x3cc7(%rip), %rdi      # 0x21209
callq 0x2680
movl %eax, -0x4(%rbp)
jmp 0x1d5ff
movq -0x10(%rbp), %rax
movq (%rax), %rax
movslq -0x18(%rbp), %rcx
addq %rcx, %rax
movq -0x10(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jbe 0x1d57b
leaq 0x3ca8(%rip), %rdi      # 0x21216
callq 0x2680
movl %eax, -0x4(%rbp)
jmp 0x1d5ff
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movslq -0x18(%rbp), %rcx
addq %rcx, %rax
movq -0x10(%rbp), %rcx
cmpq 0x28(%rcx), %rax
jbe 0x1d5b8
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
movl -0x18(%rbp), %edx
callq 0x1dfd0
cmpl $0x0, %eax
jne 0x1d5b6
movl $0x0, -0x4(%rbp)
jmp 0x1d5ff
jmp 0x1d5b8
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
movslq -0x18(%rbp), %rdx
callq 0x21b0
movl -0x18(%rbp), %edx
movq -0x10(%rbp), %rax
movq (%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, (%rax)
movl -0x18(%rbp), %edx
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, 0x18(%rax)
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)