// File: /workspace/github_cpp_makefile_star2_O2/srajangarg[P]raytracer/src/core/stb_image.hpp
// 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, %r14
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 0x128b7
movq (%r14), %rax
movq 0x8(%r14), %rdx
xorl %esi, %esi
cmpq %rdx, %rax
jae 0x1286d
leaq 0x1(%rax), %rdi
movq %rdi, (%r14)
movzbl (%rax), %ecx
movq %rdi, %rax
jmp 0x1286f
xorl %ecx, %ecx
cmpq %rdx, %rax
jae 0x1287e
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movzbl (%rax), %esi
movl %ecx, %eax
shll $0x8, %eax
orl %esi, %eax
xorl %ebp, %ebp
movw $0x1f, %di
xorl %edx, %edx
divw %di
testw %dx, %dx
je 0x128a1
leaq 0xffe1(%rip), %rax      # 0x2287d
jmp 0x12e0c
testb $0x20, %sil
jne 0x12de1
andl $0xf, %ecx
cmpl $0x8, %ecx
jne 0x12e05
andq $0x0, 0x10(%r14)
leaq 0x34(%r14), %rax
movq %rax, 0x18(%rsp)
leaq 0x818(%r14), %rax
movq %rax, 0x10(%rsp)
pushq $0x1
popq %r12
pushq $0x2
popq %r13
xorl %ebp, %ebp
leaq 0x10044(%rip), %r15     # 0x22926
leaq 0x1cb07(%rip), %rbx     # 0x2f3f0
movq %r14, %rdi
movl %r12d, %esi
callq 0x1a913
movl %eax, 0x24(%rsp)
movq %r14, %rdi
movl %r13d, %esi
callq 0x1a913
testl %eax, %eax
je 0x12ad6
cmpl $0x1, %eax
je 0x12989
cmpl $0x3, %eax
pushq $0x3
popq %r12
leaq 0xf592(%rip), %r13      # 0x21eb0
je 0x12e13
movq %r14, %rdi
pushq $0x5
popq %rbx
movl %ebx, %esi
callq 0x1a913
xorl %r15d, %r15d
movl %eax, %ebp
movq %r14, %rdi
movl %ebx, %esi
callq 0x1a913
movq %rax, 0x8(%rsp)
movq %r14, %rdi
pushq $0x4
popq %rsi
callq 0x1a913
movl %eax, %ebx
addl $0x4, %ebx
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
andl $0x0, 0x3f(%rsp)
testl %ebx, %ebx
cmovlel %r15d, %ebx
xorl %r15d, %r15d
cmpq %r15, %rbx
je 0x129d1
movq %r14, %rdi
movl %r12d, %esi
callq 0x1a913
movzbl (%r15,%r13), %ecx
movb %al, 0x30(%rsp,%rcx)
incq %r15
jmp 0x1296b
cmpb $0x0, 0x1ca7f(%rip)     # 0x2f40f
leaq 0x1ca79(%rip), %rsi     # 0x2f410
je 0x12d4e
movq 0x18(%rsp), %rdi
movl $0x120, %edx            # imm = 0x120
callq 0x1a94c
testl %eax, %eax
je 0x12e13
movq 0x10(%rsp), %rdi
movq %rbx, %rsi
pushq $0x20
popq %rdx
callq 0x1a94c
testl %eax, %eax
jne 0x12bff
jmp 0x12e13
leaq 0x224(%rsp), %rbx
movq %rbx, %rdi
leaq 0x30(%rsp), %rsi
pushq $0x13
popq %rdx
callq 0x1a94c
testl %eax, %eax
je 0x12df8
addl $0x101, %ebp            # imm = 0x101
movq 0x8(%rsp), %rax
incl %eax
movq %rbp, 0x28(%rsp)
movq %rax, 0x8(%rsp)
leal (%rax,%rbp), %r13d
xorl %r15d, %r15d
cmpl %r13d, %r15d
jge 0x12bad
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1ac0b
cmpl $0x12, %eax
ja 0x12dea
movslq %r15d, %rbp
cmpl $0xf, %eax
ja 0x12a3d
incl %r15d
movb %al, 0x50(%rsp,%rbp)
jmp 0x12a0f
leaq (%rsp,%rbp), %rbx
addq $0x50, %rbx
movq %r14, %rdi
cmpl $0x11, %eax
je 0x12a74
cmpl $0x10, %eax
jne 0x12aa5
pushq $0x2
popq %rsi
callq 0x1a913
movl %eax, %r12d
leal 0x3(%r12), %eax
movslq %eax, %rdx
leaq 0x50(%rsp), %rax
movzbl -0x1(%rbp,%rax), %esi
movq %rbx, %rdi
jmp 0x12a8c
pushq $0x3
popq %rsi
callq 0x1a913
movl %eax, %r12d
leal 0x3(%r12), %eax
movslq %eax, %rdx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x41d0
addl %r12d, %r15d
addl $0x3, %r15d
leaq 0x224(%rsp), %rbx
jmp 0x12a0f
pushq $0x7
popq %rsi
callq 0x1a913
movl %eax, %r12d
leal 0xb(%r12), %eax
movslq %eax, %rdx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x41d0
addl %r12d, %r15d
addl $0xb, %r15d
leaq 0x224(%rsp), %rbx
jmp 0x12a0f
movl 0x10(%r14), %ecx
movl %ecx, %esi
andl $0x7, %esi
je 0x12aed
movq %r14, %rdi
callq 0x1a913
movl 0x10(%r14), %ecx
xorl %eax, %eax
testl %ecx, %ecx
jle 0x12b11
movl 0x14(%r14), %edx
movb %dl, 0x224(%rsp,%rax)
incq %rax
shrl $0x8, %edx
movl %edx, 0x14(%r14)
addl $-0x8, %ecx
movl %ecx, 0x10(%r14)
jmp 0x12aef
je 0x12b38
jmp 0x12e37
movq (%r14), %rcx
cmpq 0x8(%r14), %rcx
jae 0x12b2c
leaq 0x1(%rcx), %rdx
movq %rdx, (%r14)
movb (%rcx), %cl
jmp 0x12b2e
xorl %ecx, %ecx
movb %cl, 0x224(%rsp,%rax)
incq %rax
cmpq $0x3, %rax
jbe 0x12b18
movzwl 0x224(%rsp), %edx
movzwl 0x226(%rsp), %eax
xorl %edx, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
jne 0x12e2e
movq (%r14), %rsi
movl %edx, %ebx
leaq (%rsi,%rbx), %rax
cmpq 0x8(%r14), %rax
ja 0x12e27
movq 0x18(%r14), %rax
leaq (%rax,%rbx), %rcx
cmpq 0x28(%r14), %rcx
jbe 0x12b96
movq %r14, %rdi
movq %rax, %rsi
callq 0x1ab8d
testl %eax, %eax
je 0x12e13
movq (%r14), %rsi
movq 0x18(%r14), %rax
movq %rax, %rdi
movq %rbx, %rdx
callq 0x42a0
addq %rbx, (%r14)
addq %rbx, 0x18(%r14)
jmp 0x12dc1
jne 0x12dea
movq 0x18(%rsp), %rdi
leaq 0x50(%rsp), %rsi
movq 0x28(%rsp), %rbx
movl %ebx, %edx
callq 0x1a94c
testl %eax, %eax
je 0x12df8
movslq %ebx, %rax
leaq (%rsp,%rax), %rsi
addq $0x50, %rsi
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rdx
callq 0x1a94c
testl %eax, %eax
leaq 0xfd32(%rip), %r15      # 0x22926
movl $0x0, %ebp
je 0x12df8
movq 0x18(%r14), %r12
movq %r14, %rdi
movq 0x18(%rsp), %rsi
callq 0x1ac0b
movl %eax, %ebx
cmpl $0xff, %eax
jg 0x12c4a
testl %ebx, %ebx
js 0x12dd8
cmpq 0x28(%r14), %r12
jb 0x12c41
movq %r14, %rdi
movq %r12, %rsi
pushq $0x1
popq %rdx
callq 0x1ab8d
testl %eax, %eax
je 0x12e13
movq 0x18(%r14), %r12
movb %bl, (%r12)
incq %r12
jmp 0x12c03
cmpl $0x100, %ebx            # imm = 0x100
je 0x12db5
addl $0xfffffeff, %ebx       # imm = 0xFFFFFEFF
leaq 0xf26d(%rip), %rax      # 0x21ed0
movl (%rax,%rbx,4), %r13d
leaq -0x1c(%rbx), %rax
cmpq $-0x14, %rax
jb 0x12c86
leaq 0xf2d8(%rip), %rax      # 0x21f50
movl (%rax,%rbx,4), %esi
movq %r14, %rdi
callq 0x1a913
addl %eax, %r13d
movq %r14, %rdi
movq 0x10(%rsp), %rsi
callq 0x1ac0b
testl %eax, %eax
js 0x12dd8
movl %eax, %eax
leaq 0xf32c(%rip), %rcx      # 0x21fd0
movl (%rcx,%rax,4), %ebx
leaq -0x1e(%rax), %rcx
cmpq $-0x1a, %rcx
jb 0x12cc5
leaq 0xf398(%rip), %rcx      # 0x22050
movl (%rcx,%rax,4), %esi
movq %r14, %rdi
callq 0x1a913
addl %eax, %ebx
movq %r12, %rax
subq 0x20(%r14), %rax
movslq %ebx, %rbx
cmpq %rbx, %rax
jl 0x12dfc
movslq %r13d, %rax
addq %r12, %rax
cmpq 0x28(%r14), %rax
jbe 0x12cfe
movq %r14, %rdi
movq %r12, %rsi
movl %r13d, %edx
callq 0x1ab8d
testl %eax, %eax
je 0x12e13
movq 0x18(%r14), %r12
movq %rbx, %rax
negq %rax
cmpl $0x1, %ebx
jne 0x12d30
testl %r13d, %r13d
je 0x12c03
movl %r13d, %edx
movzbl (%r12,%rax), %esi
movq %r12, %rdi
callq 0x41d0
decl %r13d
addq %r13, %r12
incq %r12
jmp 0x12c03
testl %r13d, %r13d
je 0x12c03
movb (%r12,%rax), %cl
movb %cl, (%r12)
incq %r12
decl %r13d
jne 0x12d39
jmp 0x12c03
xorl %eax, %eax
cmpq $0x90, %rax
je 0x12d61
movb $0x8, (%rax,%rsi)
incq %rax
jmp 0x12d50
xorl %eax, %eax
cmpq $0x70, %rax
je 0x12d76
movb $0x9, 0x90(%rax,%rsi)
incq %rax
jmp 0x12d63
xorl %eax, %eax
cmpq $0x18, %rax
je 0x12d8b
movb $0x7, 0x100(%rax,%rsi)
incq %rax
jmp 0x12d78
xorl %eax, %eax
cmpq $0x8, %rax
je 0x12da0
movb $0x8, 0x118(%rax,%rsi)
incq %rax
jmp 0x12d8d
xorl %eax, %eax
cmpq $0x20, %rax
je 0x1299d
movb $0x5, (%rax,%rbx)
incq %rax
jmp 0x12da2
movq %r12, 0x18(%r14)
pushq $0x1
popq %r12
pushq $0x2
popq %r13
cmpl $0x0, 0x24(%rsp)
leaq 0x1c623(%rip), %rbx     # 0x2f3f0
je 0x128e9
movl %r12d, %ebp
jmp 0x12e13
leaq 0xf457(%rip), %rax      # 0x22236
jmp 0x12e0c
leaq 0xfaa5(%rip), %rax      # 0x2288d
jmp 0x12e0c
leaq 0xfb71(%rip), %rax      # 0x22962
movq %rax, 0x1c5d8(%rip)     # 0x2f3d0
xorl %ebp, %ebp
jmp 0x12e13
leaq 0xfbc2(%rip), %rax      # 0x229c5
jmp 0x12e0c
leaq 0xf956(%rip), %rax      # 0x22762
movq %rax, 0x1c5bd(%rip)     # 0x2f3d0
movl %ebp, %eax
addq $0xa08, %rsp            # imm = 0xA08
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xfb05(%rip), %r15      # 0x22933
movq %r15, 0x1c59b(%rip)     # 0x2f3d0
jmp 0x12e13
leaq 0xfaa6(%rip), %rdi      # 0x228e4
leaq 0xf454(%rip), %rsi      # 0x22299
leaq 0xfaa9(%rip), %rcx      # 0x228f5
movl $0xea4, %edx            # imm = 0xEA4
callq 0x4210