// File: /workspace/github_c_makefile_star2_O3/halcy[P]quasi_crystals_bot/Engine/../Graphics/Tools/PNG.h
// Function: LoadPNGImageData
static bool LoadPNGImageData(PNGLoader *self,void *pixels,int bytesperrow,PNGPixelFunction *pixelfunc)
{
	uint8_t bytes[TemporaryBytesForPNGLoader(self)];
	return LoadPNGImageDataWithTemporaryStorage(self,pixels,bytesperrow,pixelfunc,bytes);
/*	void *bytes=malloc(TemporaryBytesForPNGLoader(self));
	bool res=LoadPNGImageDataWithTemporaryStorage(self,pixels,bytesperrow,pixelfunc,bytes);
	free(bytes);
	return res;*/
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
leaq -0x58(%rsp), %rsp
leaq (%rdi), %rbx
movslq 0x20(%rdi), %rdi
movl %edx, -0x30(%rbp)
movq %rsp, %rdx
movq %rsi, -0x60(%rbp)
movslq 0x24(%rbx), %r14
movq %rdx, %r15
leaq (%r14,%rdi), %rax
leaq 0x28047(%rax,%rax), %rcx
andq $-0x10, %rcx
subq %rcx, %r15
movq %r15, %rsp
xorl %esi, %esi
movq $0x0, 0x20(%r15)
leaq 0x28038(%r15,%rdi), %r12
leaq 0x28038(%r15), %r13
negq %rcx
movl %esi, 0x28(%r15)
movw $0x1, 0x2c(%r15)
movl %esi, 0x30(%r15)
addq %r14, %r12
movl 0x50(%rbx), %edi
movq 0x48(%rbx), %rsi
leal -0x2(%rdi), %edi
leaq 0x2(%rsi), %r8
leaq 0x2(%rsi,%rdi), %rsi
leaq 0x6b6(%rip), %rdi       # 0x4491
movq %r8, 0x10(%r15)
movq %rsi, 0x18(%rdx,%rcx)
movq %rdi, (%r15)
movslq %eax, %rdx
movq %r13, %rdi
xorl %esi, %esi
movq %rbx, 0x8(%r15)
callq 0x10d0
movq %r12, %rdi
xorl %esi, %esi
movq %r14, %rdx
callq 0x10d0
xorl %edx, %edx
cmpl %edx, 0x14(%rbx)
jle 0x4480
leaq 0x8034(%r15), %rcx
leaq 0x18034(%r15), %rsi
leaq 0x34(%r15), %r11
movslq -0x30(%rbp), %rax
addq %r14, %r12
addq %r14, %r13
movq %rcx, -0x78(%rbp)
movq %rsi, -0x68(%rbp)
movq %rax, -0x58(%rbp)
movq %r11, -0x40(%rbp)
movq %rdx, %rax
movl 0x20(%rbx), %edx
movq %r12, %rdi
movq %r12, -0x30(%rbp)
movq %rax, -0x50(%rbp)
incq %rax
incl %edx
movl %eax, %r14d
movq %rax, -0x70(%rbp)
movq %rdx, -0x48(%rbp)
imull %edx, %r14d
cmpl %r14d, 0x28(%r15)
jae 0x4060
cmpb $0x1, 0x2c(%r15)
jne 0x3ed0
movl 0x30(%r15), %eax
testl %eax, %eax
jle 0x3f50
decl %eax
movq %r15, %rdi
movl $0x8, %esi
movl %eax, 0x30(%r15)
callq 0x4ad0
movl 0x24(%r15), %eax
movb $-0x1, %cl
cmpl $0x8, %eax
jl 0x3eb0
movl 0x20(%r15), %ecx
addl $-0x8, %eax
movl %ecx, %edx
shrl $0x8, %edx
movl %edx, 0x20(%r15)
movl %eax, 0x24(%r15)
movl 0x28(%r15), %eax
movq -0x40(%rbp), %r11
movq -0x30(%rbp), %rdi
movl %eax, %edx
incl %eax
andl $0x7fff, %edx           # imm = 0x7FFF
movb %cl, 0x34(%r15,%rdx)
jmp 0x4052
movq %r15, %rdi
movq -0x78(%rbp), %rsi
movl $0xf, %edx
movl %r14d, %r12d
movq %r13, %r14
callq 0x4a76
testl %eax, %eax
js 0x447c
movl %eax, %r13d
cmpl $0xff, %eax
ja 0x3f19
movl 0x28(%r15), %eax
movq -0x40(%rbp), %r11
movq -0x30(%rbp), %rdi
movl %eax, %ecx
incl %eax
andl $0x7fff, %ecx           # imm = 0x7FFF
movb %r13b, 0x34(%r15,%rcx)
jmp 0x404c
cmpl $0x100, %r13d           # imm = 0x100
jne 0x3f78
cmpb $0x0, 0x2d(%r15)
jne 0x447c
movq %r15, %rdi
callq 0x4514
movq %r14, %r13
testb %al, %al
movq -0x40(%rbp), %r11
movq -0x30(%rbp), %rdi
movl %r12d, %r14d
jne 0x4056
jmp 0x447c
cmpb $0x0, 0x2d(%r15)
jne 0x447c
movq %r15, %rdi
callq 0x4514
movq -0x30(%rbp), %rdi
movq -0x40(%rbp), %r11
testb %al, %al
jne 0x4056
jmp 0x447c
cmpl $0x108, %r13d           # imm = 0x108
ja 0x3f8d
addl $0xffffff02, %r13d      # imm = 0xFFFFFF02
movl %r13d, %ecx
jmp 0x3fc1
cmpl $0x11c, %r13d           # imm = 0x11C
movl $0x102, %ecx            # imm = 0x102
ja 0x3fc1
leal -0x105(%r13), %esi
movq %r15, %rdi
addl $0xfffffef7, %r13d      # imm = 0xFFFFFEF7
shrl $0x2, %esi
callq 0x44e0
movl %eax, %ecx
leaq 0xa473(%rip), %rdx      # 0xe430
addl (%rdx,%r13,4), %ecx
movq %r15, %rdi
movq -0x68(%rbp), %rsi
movl $0xf, %edx
movl %ecx, -0x34(%rbp)
callq 0x4a76
testl %eax, %eax
js 0x447c
movl %eax, %r13d
cmpl $0x3, %eax
ja 0x3fea
incl %r13d
jmp 0x400a
leal -0x2(%r13), %esi
movq %r15, %rdi
addl $-0x4, %r13d
shrl %esi
callq 0x44e0
leaq 0xa47d(%rip), %rcx      # 0xe480
addl (%rcx,%r13,4), %eax
movl %eax, %r13d
movl -0x34(%rbp), %r10d
movq -0x40(%rbp), %r11
movl $0x7fff, %r8d           # imm = 0x7FFF
movq -0x30(%rbp), %rdi
movl 0x28(%r15), %eax
testl %r10d, %r10d
jle 0x4049
negl %r13d
movl %eax, %ecx
movl %r10d, %edx
leal (%r13,%rcx), %esi
movl %ecx, %r9d
incl %ecx
andl %r8d, %esi
andl %r8d, %r9d
movb (%r11,%rsi), %sil
decl %edx
movb %sil, (%r11,%r9)
jne 0x402d
addl %r10d, %eax
movq %r14, %r13
movl %r12d, %r14d
movl %eax, 0x28(%r15)
cmpl %r14d, 0x28(%r15)
jb 0x3e6b
movq -0x48(%rbp), %rcx
imull -0x50(%rbp), %ecx
movl %ecx, %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movzbl (%r11,%rax), %r14d
cmpl $0x5, %r14d
setb %al
jae 0x447c
incl %ecx
movl 0x20(%rbx), %r12d
movl %eax, -0x34(%rbp)
andl $0x7fff, %ecx           # imm = 0x7FFF
leal (%r12,%rcx), %eax
movl %ecx, %esi
cmpl $0x8001, %eax           # imm = 0x8001
jb 0x40ca
movq %r13, -0x48(%rbp)
movl $0x8000, %r13d          # imm = 0x8000
addq %r11, %rsi
subl %ecx, %r13d
movq %r13, %rdx
callq 0x1140
movq -0x30(%rbp), %rax
subl %r13d, %r12d
movq -0x40(%rbp), %rsi
leaq (%rax,%r13), %rdi
movq -0x48(%rbp), %r13
jmp 0x40cd
addq %r11, %rsi
movq %r12, %rdx
callq 0x1140
leaq 0xa2d0(%rip), %r12      # 0xe3ac
cmpl $0x0, 0x20(%rbx)
movq -0x40(%rbp), %r11
movq -0x30(%rbp), %r9
jle 0x41d2
xorl %eax, %eax
leal -0x1(%r14), %ecx
cmpl $0x3, %ecx
ja 0x41a5
movslq (%r12,%rcx,4), %rcx
addq %r12, %rcx
jmpq *%rcx
movslq 0x24(%rbx), %rcx
leaq (%r9,%rax), %rdx
subq %rcx, %rdx
movb (%rdx), %cl
jmp 0x41a1
movslq 0x24(%rbx), %rcx
leaq (%r9,%rax), %rdx
subq %rcx, %rdx
movzbl (%rdx), %ecx
movzbl (%r13,%rax), %edx
addl %ecx, %edx
shrl %edx
addb %dl, (%r9,%rax)
jmp 0x41a5
movslq 0x24(%rbx), %rdx
movq %r9, %rcx
leaq (%r13,%rax), %rdi
subq %rdx, %rcx
subq %rdx, %rdi
movzbl (%rcx,%rax), %esi
movzbl (%r13,%rax), %ecx
movzbl (%rdi), %edx
leal (%rcx,%rsi), %r10d
subl %edx, %r10d
movl %r10d, %r8d
movl %r10d, %r9d
subl %esi, %r8d
movl %r8d, %edi
negl %edi
cmovsl %r8d, %edi
subl %ecx, %r9d
movl %r9d, %r8d
negl %r8d
cmovsl %r9d, %r8d
subl %edx, %r10d
movl %r10d, %r9d
negl %r9d
cmovsl %r10d, %r9d
cmpl %r8d, %edi
ja 0x41b7
cmpl %r9d, %edi
ja 0x41b7
movq -0x30(%rbp), %r9
addb %sil, (%r9,%rax)
jmp 0x41a5
movb (%r13,%rax), %cl
addb %cl, (%r9,%rax)
incq %rax
movslq 0x20(%rbx), %rcx
cmpq %rcx, %rax
jl 0x40f0
jmp 0x41d2
cmpl %r9d, %r8d
movq -0x30(%rbp), %r9
movb (%r9,%rax), %sil
jbe 0x41c9
addb %dl, %sil
jmp 0x41cc
addb %cl, %sil
movb %sil, (%r9,%rax)
jmp 0x41a5
movl 0x10(%rbx), %ecx
leaq 0xa1e0(%rip), %r10      # 0xe3bc
leaq 0xa1f5(%rip), %r12      # 0xe3d8
testl %ecx, %ecx
jle 0x445d
movq -0x50(%rbp), %r14
xorl %eax, %eax
xorl %edx, %edx
imulq -0x58(%rbp), %r14
addq -0x60(%rbp), %r14
movl 0x1c(%rbx), %esi
cmpq $0x6, %rsi
ja 0x444a
movslq (%r10,%rsi,4), %rsi
addq %r10, %rsi
jmpq *%rsi
movl 0x18(%rbx), %esi
xorl %ecx, %ecx
decl %esi
cmpl $0x7, %esi
ja 0x4431
leaq 0xa1cf(%rip), %rdi      # 0xe3f8
movslq (%rdi,%rsi,4), %rsi
addq %rdi, %rsi
jmpq *%rsi
movl %edx, %ecx
movl %edx, %esi
shrl $0x3, %ecx
andl $0x7, %esi
movzbl (%r9,%rcx), %ecx
btl %esi, %ecx
movl $0x0, %ecx
sbbl %ecx, %ecx
jmp 0x4431
movl 0x18(%rbx), %ecx
xorl %esi, %esi
decl %ecx
cmpl $0x7, %ecx
ja 0x438f
movslq (%r12,%rcx,4), %rcx
addq %r12, %rcx
jmpq *%rcx
movl %edx, %ecx
movl %edx, %esi
shrl $0x3, %ecx
andl $0x7, %esi
movzbl (%r9,%rcx), %ecx
btl %esi, %ecx
setb %sil
jmp 0x438f
movzbl 0x1(%r9,%rax), %esi
movzbl (%r9,%rax), %ecx
movzbl 0x2(%r9,%rax), %edi
shll $0x8, %ecx
shll $0x10, %esi
shll $0x18, %edi
orl %ecx, %esi
leal 0xff(%rdi,%rsi), %ecx
jmp 0x4440
movzbl (%r9,%rdx,2), %ecx
movzbl 0x1(%r9,%rdx,2), %esi
imull %esi, %ecx
imull $0x8081, %ecx, %ecx     # imm = 0x8081
shrl $0x17, %ecx
movl %ecx, %edi
movl %ecx, %r8d
shll $0x18, %ecx
shll $0x8, %edi
shll $0x10, %r8d
orl %edi, %r8d
orl %r8d, %ecx
jmp 0x440b
movzbl (%r9,%rdx,4), %ecx
movzbl 0x3(%r9,%rdx,4), %esi
movzbl 0x1(%r9,%rdx,4), %edi
movzbl 0x2(%r9,%rdx,4), %r8d
imull %esi, %edi
imull %esi, %ecx
imull %esi, %r8d
imull $0x8081, %ecx, %r9d     # imm = 0x8081
imull $0x8081, %edi, %edi     # imm = 0x8081
imull $0x10102, %r8d, %ecx    # imm = 0x10102
shrl $0xf, %r9d
shrl $0x7, %edi
andl $0xff000000, %ecx       # imm = 0xFF000000
andl $0x1ff00, %r9d          # imm = 0x1FF00
andl $0x1ff0000, %edi        # imm = 0x1FF0000
orl %r9d, %edi
movq -0x30(%rbp), %r9
orl %edi, %ecx
jmp 0x440b
movl %edx, %esi
movl %edx, %ecx
shrl %esi
andb $0x1, %cl
movb (%r9,%rsi), %sil
shrb %cl, %sil
andb $0xf, %sil
jmp 0x438f
movl %edx, %esi
movl %edx, %ecx
shrl %esi
andb $0x1, %cl
movb (%r9,%rsi), %sil
shrb %cl, %sil
andb $0xf, %sil
movzbl %sil, %esi
movl %esi, %ecx
shll $0x4, %ecx
addl %esi, %ecx
jmp 0x4431
movl %edx, %esi
movl %edx, %ecx
shrl $0x2, %esi
andb $0x3, %cl
movb (%r9,%rsi), %sil
shrb %cl, %sil
andb $0x3, %sil
jmp 0x438f
movb (%r9,%rdx), %sil
movzbl %sil, %ecx
cmpl %ecx, 0x30(%rbx)
jle 0x447c
cmpl %ecx, 0x40(%rbx)
movl %ecx, %ecx
movl $0xff, %esi
jle 0x43b0
movq 0x38(%rbx), %rsi
movzbl (%rsi,%rcx), %esi
movq 0x28(%rbx), %rdi
leaq (%rcx,%rcx,2), %rcx
movzbl (%rdi,%rcx), %r8d
movzbl 0x1(%rdi,%rcx), %r9d
movzbl 0x2(%rdi,%rcx), %ecx
imull %esi, %r9d
imull %esi, %r8d
imull %esi, %ecx
imull $0x8081, %r8d, %edi     # imm = 0x8081
imull $0x8081, %r9d, %r9d     # imm = 0x8081
imull $0x10102, %ecx, %ecx    # imm = 0x10102
shrl $0xf, %edi
shrl $0x7, %r9d
andl $0xff000000, %ecx       # imm = 0xFF000000
andl $0x1ff00, %edi          # imm = 0x1FF00
andl $0x1ff0000, %r9d        # imm = 0x1FF0000
orl %edi, %r9d
orl %r9d, %ecx
movq -0x30(%rbp), %r9
orl %esi, %ecx
jmp 0x4440
movl %edx, %esi
movl %edx, %ecx
shrl $0x2, %esi
andb $0x3, %cl
movb (%r9,%rsi), %sil
shrb %cl, %sil
andb $0x3, %sil
movzbl %sil, %ecx
imull $0x55, %ecx, %ecx
jmp 0x4431
movb (%r9,%rdx), %cl
movzbl %cl, %ecx
imull $0x1010100, %ecx, %ecx  # imm = 0x1010100
orl $0xff, %ecx
movl %ecx, (%r14)
addq $0x4, %r14
movl 0x10(%rbx), %ecx
incq %rdx
movslq %ecx, %rsi
addq $0x3, %rax
cmpq %rsi, %rdx
jl 0x41fc
movq -0x70(%rbp), %rcx
movslq 0x14(%rbx), %rax
movq %r13, %r12
movq %r9, %r13
cmpq %rax, %rcx
movq %rcx, %rdx
movl -0x34(%rbp), %eax
jl 0x3e3c
jmp 0x4482
xorl %eax, %eax
jmp 0x4482
movb $0x1, %al
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq