// File: /workspace/github_c_makefile_star2_O0/zhiyb[P]png2tlg/./stb_image.h
// Function: stbi__de_iphone(stbi__png*)
static void stbi__de_iphone(stbi__png *z)
{
   stbi__context *s = z->s;
   stbi__uint32 i, pixel_count = s->img_x * s->img_y;
   stbi_uc *p = z->out;

   if (s->img_out_n == 3) {  // convert bgr to rgb
      for (i=0; i < pixel_count; ++i) {
         stbi_uc t = p[0];
         p[0] = p[2];
         p[2] = t;
         p += 3;
      }
   } else {
      STBI_ASSERT(s->img_out_n == 4);
      if (stbi__unpremultiply_on_load) {
         // convert bgr to rgb and unpremultiply
         for (i=0; i < pixel_count; ++i) {
            stbi_uc a = p[3];
            stbi_uc t = p[0];
            if (a) {
               stbi_uc half = a / 2;
               p[0] = (p[2] * 255 + half) / a;
               p[1] = (p[1] * 255 + half) / a;
               p[2] = ( t   * 255 + half) / a;
            } else {
               p[0] = p[2];
               p[2] = t;
            }
            p += 4;
         }
      } else {
         // convert bgr to rgb
         for (i=0; i < pixel_count; ++i) {
            stbi_uc t = p[0];
            p[0] = p[2];
            p[2] = t;
            p += 4;
         }
      }
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x10(%rbp), %rcx
imull 0x4(%rcx), %eax
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x3, 0xc(%rax)
jne 0x18dc9
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl -0x18(%rbp), %eax
jae 0x18dc4
movq -0x20(%rbp), %rax
movb (%rax), %al
movb %al, -0x21(%rbp)
movq -0x20(%rbp), %rax
movb 0x2(%rax), %cl
movq -0x20(%rbp), %rax
movb %cl, (%rax)
movb -0x21(%rbp), %cl
movq -0x20(%rbp), %rax
movb %cl, 0x2(%rax)
movq -0x20(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x20(%rbp)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x18d85
jmp 0x18f22
movq -0x10(%rbp), %rax
cmpl $0x4, 0xc(%rax)
jne 0x18dd5
jmp 0x18df4
leaq 0x7f76(%rip), %rdi      # 0x20d52
leaq 0x79f3(%rip), %rsi      # 0x207d6
movl $0x129e, %edx           # imm = 0x129E
leaq 0x7f75(%rip), %rcx      # 0x20d64
callq 0x2140
cmpl $0x0, 0xd549(%rip)      # 0x26344
je 0x18ed8
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl -0x18(%rbp), %eax
jae 0x18ed6
movq -0x20(%rbp), %rax
movb 0x3(%rax), %al
movb %al, -0x22(%rbp)
movq -0x20(%rbp), %rax
movb (%rax), %al
movb %al, -0x23(%rbp)
cmpb $0x0, -0x22(%rbp)
je 0x18ea5
movzbl -0x22(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movb %al, -0x24(%rbp)
movq -0x20(%rbp), %rax
movzbl 0x2(%rax), %eax
imull $0xff, %eax, %eax
movzbl -0x24(%rbp), %ecx
addl %ecx, %eax
movzbl -0x22(%rbp), %ecx
cltd
idivl %ecx
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, (%rax)
movq -0x20(%rbp), %rax
movzbl 0x1(%rax), %eax
imull $0xff, %eax, %eax
movzbl -0x24(%rbp), %ecx
addl %ecx, %eax
movzbl -0x22(%rbp), %ecx
cltd
idivl %ecx
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0x1(%rax)
movzbl -0x23(%rbp), %eax
imull $0xff, %eax, %eax
movzbl -0x24(%rbp), %ecx
addl %ecx, %eax
movzbl -0x22(%rbp), %ecx
cltd
idivl %ecx
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0x2(%rax)
jmp 0x18ebc
movq -0x20(%rbp), %rax
movb 0x2(%rax), %cl
movq -0x20(%rbp), %rax
movb %cl, (%rax)
movb -0x23(%rbp), %cl
movq -0x20(%rbp), %rax
movb %cl, 0x2(%rax)
movq -0x20(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x20(%rbp)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x18e08
jmp 0x18f20
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl -0x18(%rbp), %eax
jae 0x18f1e
movq -0x20(%rbp), %rax
movb (%rax), %al
movb %al, -0x25(%rbp)
movq -0x20(%rbp), %rax
movb 0x2(%rax), %cl
movq -0x20(%rbp), %rax
movb %cl, (%rax)
movb -0x25(%rbp), %cl
movq -0x20(%rbp), %rax
movb %cl, 0x2(%rax)
movq -0x20(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x20(%rbp)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x18edf
jmp 0x18f20
jmp 0x18f22
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)