// File: /workspace/github_c_makefile_star2_O3/zhiyb[P]png2tlg/./stb_image.h
// Function: stbi__do_zlib(stbi__zbuf*, char*, int, int, int)
static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, int parse_header)
{
   a->zout_start = obuf;
   a->zout       = obuf;
   a->zout_end   = obuf + olen;
   a->z_expandable = exp;

   return stbi__parse_zlib(a, parse_header);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa08, %rsp            # imm = 0xA08
movq %rdi, %rbx
movq %rsi, 0x20(%rdi)
movq %rsi, 0x18(%rdi)
movslq %edx, %rax
addq %rsi, %rax
movq %rax, 0x28(%rdi)
movl %ecx, 0x30(%rdi)
testl %r8d, %r8d
je 0x3442
movq (%rbx), %rdx
movq 0x8(%rbx), %rsi
xorl %ecx, %ecx
cmpq %rsi, %rdx
jae 0x33f8
leaq 0x1(%rdx), %rdi
movq %rdi, (%rbx)
movzbl (%rdx), %eax
movq %rdi, %rdx
jmp 0x33fa
xorl %eax, %eax
cmpq %rsi, %rdx
jae 0x3409
leaq 0x1(%rdx), %rcx
movq %rcx, (%rbx)
movzbl (%rdx), %ecx
movl %eax, %edx
shll $0x8, %edx
orl %ecx, %edx
imull $0x7bdf, %edx, %edx     # imm = 0x7BDF
movzwl %dx, %edx
cmpl $0x842, %edx            # imm = 0x842
jbe 0x342d
leaq 0x15f9f(%rip), %rax     # 0x193c7
jmp 0x3cf1
testb $0x20, %cl
jne 0x3ccf
andl $0xf, %eax
cmpl $0x8, %eax
jne 0x3cea
movq $0x0, 0x10(%rbx)
leaq 0x34(%rbx), %rax
movq %rax, 0x28(%rsp)
leaq 0x818(%rbx), %rax
movq %rax, 0x10(%rsp)
xorl %eax, %eax
leaq 0x16008(%rip), %r15     # 0x19470
leaq 0x15341(%rip), %rbp     # 0x187b0
testl %eax, %eax
jg 0x347e
movq %rbx, %rdi
callq 0x15e69
movl 0x10(%rbx), %eax
movl 0x14(%rbx), %ecx
movl %ecx, 0x1c(%rsp)
movl %ecx, %r13d
shrl %r13d
movl %r13d, 0x14(%rbx)
leal -0x1(%rax), %ecx
movl %ecx, 0x10(%rbx)
cmpl $0x2, %eax
jg 0x34a9
movq %rbx, %rdi
callq 0x15e69
movl 0x10(%rbx), %ecx
movl 0x14(%rbx), %r13d
movl %r13d, %edx
andl $0x3, %edx
shrl $0x2, %r13d
movl %r13d, 0x14(%rbx)
leal -0x2(%rcx), %eax
movl %eax, 0x10(%rbx)
leaq 0x14d6c(%rip), %rsi     # 0x18230
movslq (%rsi,%rdx,4), %rdx
addq %rsi, %rdx
jmpq *%rdx
movl %eax, %r14d
andl $0x7, %r14d
je 0x34fa
cmpl $0x1, %ecx
jg 0x34ea
movq %rbx, %rdi
callq 0x15e69
movl 0x10(%rbx), %eax
movl 0x14(%rbx), %r13d
movl %r14d, %ecx
shrl %cl, %r13d
movl %r13d, 0x14(%rbx)
subl %r14d, %eax
movl %eax, 0x10(%rbx)
testl %eax, %eax
jle 0x3c14
leal -0x1(%rax), %edx
movl %edx, %edi
shrl $0x3, %edi
leal 0x1(%rdi), %ecx
andl $-0x8, %edx
movq $-0x1, %rsi
movb %r13b, 0x225(%rsp,%rsi)
shrl $0x8, %r13d
incq %rsi
cmpq %rsi, %rdi
jne 0x3517
addl $-0x8, %eax
movl %r13d, 0x14(%rbx)
subl %edx, %eax
movl %eax, 0x10(%rbx)
jne 0x3d42
cmpq $0x2, %rsi
jbe 0x3c1c
jmp 0x3c4a
movq 0x28(%rsp), %rdi
leaq 0x15118(%rip), %rsi     # 0x18670
movl $0x120, %edx            # imm = 0x120
callq 0x15938
testl %eax, %eax
je 0x3cf8
movq 0x10(%rsp), %rdi
leaq 0x1521a(%rip), %rsi     # 0x18790
movl $0x20, %edx
callq 0x15938
testl %eax, %eax
jne 0x38c6
jmp 0x3cf8
cmpl $0x6, %ecx
jg 0x35a1
movq %rbx, %rdi
callq 0x15e69
movl 0x10(%rbx), %eax
movl 0x14(%rbx), %r13d
movl %r13d, %r14d
shrl $0x5, %r14d
movl %r14d, 0x14(%rbx)
leal -0x5(%rax), %edx
movl %edx, 0x10(%rbx)
cmpl $0x9, %eax
jg 0x35c6
movq %rbx, %rdi
callq 0x15e69
movl 0x10(%rbx), %edx
movl 0x14(%rbx), %r14d
movl %r14d, %ecx
shrl $0x5, %ecx
movl %ecx, 0x14(%rbx)
leal -0x5(%rdx), %eax
movl %eax, 0x10(%rbx)
cmpl $0x8, %edx
jg 0x35e8
movq %rbx, %rdi
callq 0x15e69
movl 0x10(%rbx), %eax
movl 0x14(%rbx), %ecx
andl $0x1f, %r13d
addl $0x101, %r13d           # imm = 0x101
andl $0x1f, %r14d
incl %r14d
movq %r14, 0x20(%rsp)
movl %ecx, %r14d
andl $0xf, %r14d
shrl $0x4, %ecx
movl %ecx, 0x14(%rbx)
addl $-0x4, %eax
movl %eax, 0x10(%rbx)
addl $0x4, %r14d
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
movl $0x0, 0x3f(%rsp)
xorl %r15d, %r15d
cmpl $0x2, %eax
jg 0x363c
movq %rbx, %rdi
callq 0x15e69
movl 0x10(%rbx), %eax
movl 0x14(%rbx), %ecx
movl %ecx, %edx
shrl $0x3, %edx
movl %edx, 0x14(%rbx)
addl $-0x3, %eax
movl %eax, 0x10(%rbx)
andb $0x7, %cl
movzbl (%r15,%rbp), %esi
movb %cl, 0x30(%rsp,%rsi)
incq %r15
movl %edx, %ecx
cmpq %r15, %r14
jne 0x3629
leaq 0x224(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movl $0x13, %edx
callq 0x15938
testl %eax, %eax
je 0x3cf8
movq 0x20(%rsp), %rax
addl %r13d, %eax
movl %eax, 0xc(%rsp)
movl 0x10(%rbx), %r15d
xorl %ebp, %ebp
cmpl $0xf, %r15d
jg 0x369f
movq %rbx, %rdi
callq 0x15e69
movl 0x14(%rbx), %eax
movl %eax, %ecx
andl $0x1ff, %ecx            # imm = 0x1FF
movzwl 0x224(%rsp,%rcx,2), %edx
testl %edx, %edx
je 0x36d6
movl %edx, %ecx
shrl $0x9, %ecx
shrl %cl, %eax
movl %eax, 0x14(%rbx)
movl 0x10(%rbx), %r15d
subl %ecx, %r15d
movl %r15d, 0x10(%rbx)
andl $0x1ff, %edx            # imm = 0x1FF
jmp 0x377c
movl %eax, %ecx
rolw $0x8, %cx
movl %ecx, %edx
shrl $0x4, %edx
movl $0xf0f, %esi            # imm = 0xF0F
andl %esi, %edx
andl %esi, %ecx
shll $0x4, %ecx
orl %edx, %ecx
movl %ecx, %edx
movl $0x3333, %esi           # imm = 0x3333
andl %esi, %edx
shrl $0x2, %ecx
andl %esi, %ecx
leal (%rcx,%rdx,4), %ecx
movl %ecx, %edx
movl $0x5555, %esi           # imm = 0x5555
andl %esi, %edx
shrl %ecx
andl %esi, %ecx
leal (%rcx,%rdx,2), %esi
xorl %edx, %edx
movq %rdx, %rcx
incq %rdx
cmpl %esi, 0x66c(%rsp,%rcx,4)
jle 0x3712
cmpq $0x7, %rdx
je 0x3cc6
movb $0x7, %cl
subb %dl, %cl
shrl %cl, %esi
movzwl 0x636(%rsp,%rdx,2), %ecx
subq %rcx, %rsi
movzwl 0x69a(%rsp,%rdx,2), %edi
addq %rsi, %rdi
movzbl 0x6a8(%rsp,%rdi), %ecx
addq $-0x9, %rcx
cmpq %rdx, %rcx
jne 0x3d23
leaq 0x9(%rdx), %rcx
shrl %cl, %eax
movl %eax, 0x14(%rbx)
movl 0x10(%rbx), %r15d
subl %edx, %r15d
addl $-0x9, %r15d
movl %r15d, 0x10(%rbx)
movzwl 0x7c8(%rsp,%rdi,2), %edx
cmpl $0x12, %edx
ja 0x3cc6
cmpl $0xf, %edx
ja 0x3798
movslq %ebp, %rax
incl %ebp
movb %dl, 0x50(%rsp,%rax)
jmp 0x386c
movslq %ebp, %r12
cmpl $0x11, %edx
je 0x37e7
cmpl $0x10, %edx
jne 0x3817
cmpl $0x1, %r15d
jg 0x37ba
movq %rbx, %rdi
callq 0x15e69
movl 0x10(%rbx), %r15d
movl 0x14(%rbx), %eax
movl %eax, %ecx
shrl $0x2, %ecx
movl %ecx, 0x14(%rbx)
addl $-0x2, %r15d
movl %r15d, 0x10(%rbx)
testl %ebp, %ebp
je 0x3cc6
andl $0x3, %eax
addl $0x3, %eax
leaq 0x50(%rsp), %rcx
movb -0x1(%r12,%rcx), %cl
movl %eax, %r14d
jmp 0x3847
cmpl $0x2, %r15d
jg 0x37fc
movq %rbx, %rdi
callq 0x15e69
movl 0x10(%rbx), %r15d
movl 0x14(%rbx), %eax
movl %eax, %r14d
andl $0x7, %r14d
shrl $0x3, %eax
movl %eax, 0x14(%rbx)
addl $-0x3, %r15d
movl %r15d, 0x10(%rbx)
addl $0x3, %r14d
jmp 0x3845
cmpl $0x6, %r15d
jg 0x382c
movq %rbx, %rdi
callq 0x15e69
movl 0x10(%rbx), %r15d
movl 0x14(%rbx), %eax
movl %eax, %r14d
andl $0x7f, %r14d
shrl $0x7, %eax
movl %eax, 0x14(%rbx)
addl $-0x7, %r15d
movl %r15d, 0x10(%rbx)
addl $0xb, %r14d
xorl %ecx, %ecx
movl 0xc(%rsp), %eax
subl %ebp, %eax
cmpl %r14d, %eax
jl 0x3cc6
leaq (%rsp,%r12), %rdi
addq $0x50, %rdi
movl %r14d, %edx
movzbl %cl, %esi
callq 0x20e0
addl %r14d, %ebp
cmpl 0xc(%rsp), %ebp
jl 0x3691
jne 0x3cc6
movq 0x28(%rsp), %rdi
leaq 0x50(%rsp), %rsi
movl %r13d, %edx
callq 0x15938
testl %eax, %eax
leaq 0x14f19(%rip), %rbp     # 0x187b0
je 0x3cf8
movl %r13d, %eax
leaq (%rsp,%rax), %rsi
addq $0x50, %rsi
movq 0x10(%rsp), %rdi
movq 0x20(%rsp), %rdx
callq 0x15938
testl %eax, %eax
leaq 0x15bb0(%rip), %r15     # 0x19470
je 0x3cf8
movq 0x18(%rbx), %r13
cmpl $0xf, 0x10(%rbx)
jg 0x38d8
movq %rbx, %rdi
callq 0x15e69
movl 0x14(%rbx), %eax
movl %eax, %ecx
andl $0x1ff, %ecx            # imm = 0x1FF
movzwl 0x34(%rbx,%rcx,2), %r14d
testl %r14d, %r14d
je 0x390d
movl %r14d, %ecx
shrl $0x9, %ecx
shrl %cl, %eax
movl %eax, 0x14(%rbx)
movl 0x10(%rbx), %edx
subl %ecx, %edx
movl %edx, 0x10(%rbx)
andl $0x1ff, %r14d           # imm = 0x1FF
jmp 0x39b1
movl %eax, %ecx
rolw $0x8, %cx
movl %ecx, %edx
shrl $0x4, %edx
movl $0xf0f, %esi            # imm = 0xF0F
andl %esi, %edx
andl %esi, %ecx
shll $0x4, %ecx
orl %edx, %ecx
movl %ecx, %edx
movl $0x3333, %esi           # imm = 0x3333
andl %esi, %edx
shrl $0x2, %ecx
andl %esi, %ecx
leal (%rcx,%rdx,4), %ecx
movl %ecx, %edx
movl $0x5555, %esi           # imm = 0x5555
andl %esi, %edx
shrl %ecx
andl %esi, %ecx
leal (%rcx,%rdx,2), %edx
xorl %esi, %esi
movq %rsi, %rcx
incq %rsi
cmpl %edx, 0x47c(%rbx,%rcx,4)
jle 0x3949
cmpq $0x7, %rsi
je 0x3cd8
movb $0x7, %cl
subb %sil, %cl
shrl %cl, %edx
movzwl 0x446(%rbx,%rsi,2), %ecx
subq %rcx, %rdx
movzwl 0x4aa(%rbx,%rsi,2), %edi
addq %rdx, %rdi
movzbl 0x4b8(%rbx,%rdi), %ecx
addq $-0x9, %rcx
cmpq %rsi, %rcx
jne 0x3d23
leaq 0x9(%rsi), %rcx
shrl %cl, %eax
movl %eax, 0x14(%rbx)
movl 0x10(%rbx), %edx
subl %esi, %edx
addl $-0x9, %edx
movl %edx, 0x10(%rbx)
movzwl 0x5d8(%rbx,%rdi,2), %r14d
cmpl $0x100, %r14d           # imm = 0x100
jae 0x39e8
cmpq 0x28(%rbx), %r13
jb 0x39dc
movq %rbx, %rdi
movq %r13, %rsi
movl $0x1, %edx
callq 0x15ec2
testl %eax, %eax
je 0x3cf8
movq 0x18(%rbx), %r13
movb %r14b, (%r13)
incq %r13
jmp 0x38ca
je 0x3cb3
addl $0xfffffeff, %r14d      # imm = 0xFFFFFEFF
leaq 0x14dd4(%rip), %rcx     # 0x187d0
movl (%rcx,%r14,4), %r12d
leaq -0x1c(%r14), %rcx
cmpq $-0x14, %rcx
jb 0x3a44
leaq 0x14e3f(%rip), %rcx     # 0x18850
movl (%rcx,%r14,4), %r14d
cmpl %r14d, %edx
jge 0x3a28
movq %rbx, %rdi
callq 0x15e69
movl 0x10(%rbx), %edx
movl 0x14(%rbx), %eax
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl %r14d, %ecx
shll %cl, %esi
notl %esi
andl %eax, %esi
shrl %cl, %eax
movl %eax, 0x14(%rbx)
subl %r14d, %edx
movl %edx, 0x10(%rbx)
addl %esi, %r12d
cmpl $0xf, %edx
jg 0x3a54
movq %rbx, %rdi
callq 0x15e69
movl 0x14(%rbx), %eax
movl %eax, %ecx
andl $0x1ff, %ecx            # imm = 0x1FF
movq 0x10(%rsp), %rdx
movzwl (%rdx,%rcx,2), %esi
testl %esi, %esi
je 0x3a86
movl %esi, %ecx
shrl $0x9, %ecx
shrl %cl, %eax
movl %eax, 0x14(%rbx)
movl 0x10(%rbx), %edx
subl %ecx, %edx
movl %edx, 0x10(%rbx)
andl $0x1ff, %esi            # imm = 0x1FF
jmp 0x3b29
movl %eax, %ecx
rolw $0x8, %cx
movl %ecx, %edx
shrl $0x4, %edx
movl $0xf0f, %esi            # imm = 0xF0F
andl %esi, %edx
andl %esi, %ecx
shll $0x4, %ecx
orl %edx, %ecx
movl %ecx, %edx
movl $0x3333, %esi           # imm = 0x3333
andl %esi, %edx
shrl $0x2, %ecx
andl %esi, %ecx
leal (%rcx,%rdx,4), %ecx
movl %ecx, %edx
movl $0x5555, %esi           # imm = 0x5555
andl %esi, %edx
shrl %ecx
andl %esi, %ecx
leal (%rcx,%rdx,2), %edx
xorl %esi, %esi
movq %rsi, %rcx
incq %rsi
cmpl %edx, 0xc60(%rbx,%rcx,4)
jle 0x3ac2
cmpq $0x7, %rsi
je 0x3cd8
movb $0x7, %cl
subb %sil, %cl
shrl %cl, %edx
movzwl 0xc2a(%rbx,%rsi,2), %ecx
subq %rcx, %rdx
movzwl 0xc8e(%rbx,%rsi,2), %edi
addq %rdx, %rdi
movzbl 0xc9c(%rbx,%rdi), %ecx
addq $-0x9, %rcx
cmpq %rsi, %rcx
jne 0x3d23
leaq 0x9(%rsi), %rcx
shrl %cl, %eax
movl %eax, 0x14(%rbx)
movl 0x10(%rbx), %edx
subl %esi, %edx
addl $-0x9, %edx
movl %edx, 0x10(%rbx)
movzwl 0xdbc(%rbx,%rdi,2), %esi
movl %esi, %ecx
leaq 0x14d9e(%rip), %rsi     # 0x188d0
movl (%rsi,%rcx,4), %ebp
leaq -0x1e(%rcx), %rsi
cmpq $-0x1a, %rsi
jb 0x3b78
leaq 0x14e0a(%rip), %rsi     # 0x18950
movl (%rsi,%rcx,4), %r14d
cmpl %r14d, %edx
jge 0x3b5d
movq %rbx, %rdi
callq 0x15e69
movl 0x10(%rbx), %edx
movl 0x14(%rbx), %eax
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl %r14d, %ecx
shll %cl, %esi
notl %esi
andl %eax, %esi
shrl %cl, %eax
movl %eax, 0x14(%rbx)
subl %r14d, %edx
movl %edx, 0x10(%rbx)
addl %esi, %ebp
movq %r13, %rax
subq 0x20(%rbx), %rax
movslq %ebp, %r14
cmpq %r14, %rax
jl 0x3ce1
movslq %r12d, %rax
addq %r13, %rax
cmpq 0x28(%rbx), %rax
jbe 0x3bba
movq %rbx, %rdi
movq %r13, %rsi
movl %r12d, %edx
callq 0x15ec2
testl %eax, %eax
leaq 0x14c02(%rip), %rbp     # 0x187b0
je 0x3cf8
movq 0x18(%rbx), %r13
jmp 0x3bc1
leaq 0x14bef(%rip), %rbp     # 0x187b0
movq %r14, %rax
negq %rax
cmpl $0x1, %r14d
jne 0x3bf5
testl %r12d, %r12d
je 0x38ca
movl %r12d, %edx
movzbl (%r13,%rax), %esi
movq %r13, %rdi
callq 0x20e0
decl %r12d
addq %r12, %r13
incq %r13
jmp 0x38ca
testl %r12d, %r12d
je 0x38ca
movb (%r13,%rax), %cl
movb %cl, (%r13)
incq %r13
decl %r12d
jne 0x3bfe
jmp 0x38ca
jne 0x3d42
xorl %ecx, %ecx
movq (%rbx), %rdx
movq 0x8(%rbx), %rax
cmpq %rax, %rdx
jae 0x3c37
leaq 0x1(%rdx), %rdi
movq %rdi, (%rbx)
movb (%rdx), %sil
movq %rdi, %rdx
jmp 0x3c39
xorl %esi, %esi
movb %sil, 0x224(%rsp,%rcx)
incq %rcx
cmpq $0x4, %rcx
jne 0x3c23
movzwl 0x224(%rsp), %edx
movzwl 0x226(%rsp), %eax
xorl %edx, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
jne 0x3d1a
movq (%rbx), %rsi
movl %edx, %r12d
leaq (%rsi,%r12), %rax
cmpq 0x8(%rbx), %rax
ja 0x3d13
movq 0x18(%rbx), %rax
leaq (%rax,%r12), %rcx
cmpq 0x28(%rbx), %rcx
jbe 0x3c9f
movq %rbx, %rdi
movq %rax, %rsi
callq 0x15ec2
testl %eax, %eax
je 0x3cf8
movq (%rbx), %rsi
movq 0x18(%rbx), %rax
movq %rax, %rdi
movq %r12, %rdx
callq 0x2140
addq %r12, (%rbx)
addq %r12, 0x18(%rbx)
jmp 0x3cb7
movq %r13, 0x18(%rbx)
testb $0x1, 0x1c(%rsp)
jne 0x3d0c
movl 0x10(%rbx), %eax
jmp 0x346f
leaq 0x157df(%rip), %rax     # 0x194ac
jmp 0x3cf1
leaq 0x15701(%rip), %rax     # 0x193d7
jmp 0x3cf1
leaq 0x14f3f(%rip), %rax     # 0x18c1e
jmp 0x3cf1
leaq 0x15827(%rip), %rax     # 0x1950f
jmp 0x3cf1
leaq 0x1552f(%rip), %rax     # 0x19220
movq %rax, 0x19500(%rip)     # 0x1d1f8
xorl %eax, %eax
addq $0xa08, %rsp            # imm = 0xA08
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x1, %eax
jmp 0x3cfa
leaq 0x15763(%rip), %r15     # 0x1947d
movq %r15, 0x194d7(%rip)     # 0x1d1f8
jmp 0x3cf8
leaq 0x15792(%rip), %rdi     # 0x194bc
leaq 0x14d05(%rip), %rsi     # 0x18a36
leaq 0x15794(%rip), %rcx     # 0x194cc
movl $0xf97, %edx            # imm = 0xF97
callq 0x20f0
leaq 0x156e5(%rip), %rdi     # 0x1942e
leaq 0x14ce6(%rip), %rsi     # 0x18a36
leaq 0x156e8(%rip), %rcx     # 0x1943f
movl $0x1034, %edx           # imm = 0x1034
callq 0x20f0