// File: /workspace/github_c_makefile_star2_O2/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
movslq 0x20(%rdi), %r12
movslq 0x24(%rdi), %r14
movl %edx, -0x30(%rbp)
movq %rsp, %rdx
movq %rdi, %rbx
movq %rsi, -0x58(%rbp)
leaq (%r14,%r12), %rax
movq %rdx, %r15
leaq 0x28047(%rax,%rax), %rcx
andq $-0x10, %rcx
subq %rcx, %r15
movq %r15, %rsp
andl $0x0, 0x28(%r15)
andq $0x0, 0x20(%r15)
movw $0x1, 0x2c(%r15)
andl $0x0, 0x30(%r15)
leaq 0x28038(%r15,%r14), %rsi
negq %rcx
leaq 0x28038(%r15), %rdi
xorl %r13d, %r13d
movl 0x50(%rbx), %r8d
movq %rsi, -0x38(%rbp)
addq %rsi, %r12
movq 0x48(%rbx), %rsi
leal -0x2(%r8), %r8d
leaq 0x2(%rsi), %r9
leaq 0x2(%rsi,%r8), %rsi
movq %r9, 0x10(%r15)
leaq 0x5e5(%rip), %r8        # 0x3dbd
movq %rsi, 0x18(%rdx,%rcx)
movslq %eax, %rdx
xorl %esi, %esi
movq %r8, (%r15)
movq %rbx, 0x8(%r15)
callq 0x10d0
movq %r12, %rdi
xorl %esi, %esi
movq %r14, %rdx
callq 0x10d0
addq %r14, %r12
leaq 0x8034(%r15), %rax
leaq 0x18034(%r15), %rdx
leaq 0x34(%r15), %r14
movslq -0x30(%rbp), %rcx
movq %rax, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
movq %rcx, -0x50(%rbp)
movslq 0x14(%rbx), %rax
cmpq %rax, %r13
setge %al
jge 0x3d69
movl 0x20(%rbx), %edx
leaq 0x1(%r13), %rcx
movq %r12, -0x30(%rbp)
movq %r13, -0x68(%rbp)
movl %eax, -0x44(%rbp)
incl %edx
movl %ecx, %r12d
movq %rcx, -0x60(%rbp)
imull %edx, %r12d
imull %edx, %r13d
movq %r13, -0x70(%rbp)
movl %r12d, -0x40(%rbp)
cmpl %r12d, 0x28(%r15)
jae 0x39d9
cmpb $0x1, 0x2c(%r15)
jne 0x389d
movl 0x30(%r15), %eax
testl %eax, %eax
jle 0x38de
decl %eax
movq %r15, %rdi
movl %eax, 0x30(%r15)
pushq $0x8
popq %rsi
callq 0x3e37
movl 0x28(%r15), %ecx
movl %ecx, %edx
incl %ecx
andl $0x7fff, %edx           # imm = 0x7FFF
movb %al, 0x34(%r15,%rdx)
jmp 0x39d0
movq %r15, %rdi
movq -0x80(%rbp), %rsi
pushq $0xf
popq %rdx
callq 0x41ed
testl %eax, %eax
js 0x3d58
movl %eax, %r13d
cmpl $0xff, %eax
ja 0x38d5
movl 0x28(%r15), %ecx
movl %ecx, %eax
incl %ecx
andl $0x7fff, %eax           # imm = 0x7FFF
movb %r13b, 0x34(%r15,%rax)
jmp 0x39d0
cmpl $0x100, %r13d           # imm = 0x100
jne 0x38fe
cmpb $0x0, 0x2d(%r15)
jne 0x3d58
movq %r15, %rdi
callq 0x3e69
testb %al, %al
jne 0x385b
jmp 0x3d58
cmpl $0x108, %r13d           # imm = 0x108
ja 0x3913
addl $0xffffff02, %r13d      # imm = 0xFFFFFF02
movl %r13d, %r12d
jmp 0x3949
cmpl $0x11c, %r13d           # imm = 0x11C
movl $0x102, %r12d           # imm = 0x102
ja 0x3949
leal -0x105(%r13), %esi
movq %r15, %rdi
addl $0xfffffef7, %r13d      # imm = 0xFFFFFEF7
shrl $0x2, %esi
callq 0x3e37
movl %eax, %r12d
leaq 0x89fb(%rip), %rcx      # 0xc340
addl (%rcx,%r13,4), %r12d
movq %r15, %rdi
movq -0x78(%rbp), %rsi
pushq $0xf
popq %rdx
callq 0x41ed
testl %eax, %eax
js 0x3d58
movl %eax, %r13d
cmpl $0x3, %eax
ja 0x396d
incl %r13d
jmp 0x398d
leal -0x2(%r13), %esi
movq %r15, %rdi
addl $-0x4, %r13d
shrl %esi
callq 0x3e37
leaq 0x8a0a(%rip), %rcx      # 0xc390
addl (%rcx,%r13,4), %eax
movl %eax, %r13d
movl 0x28(%r15), %ecx
testl %r12d, %r12d
movl $0x0, %eax
movl %r12d, %r9d
cmovgl %r12d, %eax
negl %r13d
movl %ecx, %edx
movl -0x40(%rbp), %r12d
subl $0x1, %eax
jb 0x39cd
leal (%r13,%rdx), %esi
movl $0x7fff, %r8d           # imm = 0x7FFF
movl %edx, %edi
incl %edx
andl %r8d, %esi
andl %r8d, %edi
movb (%r14,%rsi), %sil
movb %sil, (%r14,%rdi)
jmp 0x39a9
addl %r9d, %ecx
movl %ecx, 0x28(%r15)
jmp 0x385b
movq -0x70(%rbp), %rcx
movl %ecx, %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movzbl (%r14,%rax), %r12d
movl -0x44(%rbp), %eax
cmpl $0x4, %r12d
ja 0x3d5a
incl %ecx
movl 0x20(%rbx), %edx
andl $0x7fff, %ecx           # imm = 0x7FFF
leal (%rdx,%rcx), %eax
movl %ecx, %esi
cmpl $0x8001, %eax           # imm = 0x8001
jb 0x3a40
movl $0x8000, %r13d          # imm = 0x8000
addq %r14, %rsi
movq -0x30(%rbp), %rdi
movq %rdx, -0x40(%rbp)
subl %ecx, %r13d
movq %r13, %rdx
callq 0x1140
movq -0x40(%rbp), %rdx
movq -0x30(%rbp), %rax
movq %r14, %rsi
leaq (%rax,%r13), %rdi
subl %r13d, %edx
movq %rax, %r13
jmp 0x3a4a
movq -0x30(%rbp), %r13
addq %r14, %rsi
movq %r13, %rdi
callq 0x1140
movq -0x38(%rbp), %rax
movq %r13, %rcx
xorl %edx, %edx
movslq 0x20(%rbx), %rsi
cmpq %rsi, %rdx
jge 0x3b32
leal -0x1(%r12), %esi
cmpl $0x3, %esi
ja 0x3b0f
leaq 0x88ae(%rip), %rdi      # 0xc328
movslq (%rdi,%rsi,4), %rsi
addq %rdi, %rsi
jmpq *%rsi
movslq 0x24(%rbx), %rsi
movq %rcx, %rdi
subq %rsi, %rdi
movb (%rdi), %sil
jmp 0x3b0c
movslq 0x24(%rbx), %rsi
movq %rcx, %rdi
subq %rsi, %rdi
movzbl (%rdi), %esi
movzbl (%rax), %edi
addl %esi, %edi
shrl %edi
addb %dil, (%rcx)
jmp 0x3b0f
movslq 0x24(%rbx), %rdi
movq %rcx, %rsi
movq %rax, %r9
subq %rdi, %rsi
subq %rdi, %r9
movzbl (%rsi), %r8d
movzbl (%rax), %esi
movzbl (%r9), %edi
leal (%rsi,%r8), %r13d
subl %edi, %r13d
movl %r13d, %r10d
movl %r13d, %r11d
subl %r8d, %r10d
movl %r10d, %r9d
negl %r9d
cmovsl %r10d, %r9d
subl %esi, %r11d
movl %r11d, %r10d
negl %r10d
cmovsl %r11d, %r10d
subl %edi, %r13d
movl %r13d, %r11d
negl %r11d
cmovsl %r13d, %r11d
cmpl %r10d, %r9d
ja 0x3b1d
cmpl %r11d, %r9d
ja 0x3b1d
addb %r8b, (%rcx)
jmp 0x3b0f
movb (%rax), %sil
addb %sil, (%rcx)
incq %rdx
incq %rcx
incq %rax
jmp 0x3a58
cmpl %r11d, %r10d
movb (%rcx), %r8b
jbe 0x3b2a
addb %dil, %r8b
jmp 0x3b2d
addb %sil, %r8b
movb %r8b, (%rcx)
jmp 0x3b0f
movq -0x68(%rbp), %rdi
imulq -0x50(%rbp), %rdi
addq -0x58(%rbp), %rdi
pushq $0x2
popq %r12
xorl %r13d, %r13d
movslq 0x10(%rbx), %rax
cmpq %rax, %r13
jge 0x3d43
movl 0x1c(%rbx), %eax
cmpq $0x6, %rax
ja 0x3baf
leaq 0x8769(%rip), %rcx      # 0xc2cc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0x18(%rbx), %ecx
xorl %eax, %eax
decl %ecx
cmpl $0x7, %ecx
ja 0x3d18
leaq 0x8785(%rip), %rdx      # 0xc308
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movl %r13d, %eax
movl %r13d, %ecx
movq -0x30(%rbp), %rdx
shrl $0x3, %eax
andl $0x7, %ecx
movzbl (%rdx,%rax), %eax
btl %ecx, %eax
movl $0x0, %eax
sbbl %eax, %eax
jmp 0x3d18
movq %rdi, %rax
jmp 0x3d34
movl 0x18(%rbx), %ecx
xorl %eax, %eax
decl %ecx
cmpl $0x7, %ecx
ja 0x3cb1
leaq 0x871a(%rip), %rdx      # 0xc2e8
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movl %r13d, %eax
movl %r13d, %ecx
movq -0x30(%rbp), %rdx
shrl $0x3, %eax
andl $0x7, %ecx
movzbl (%rdx,%rax), %eax
btl %ecx, %eax
setb %al
jmp 0x3cb1
movq -0x30(%rbp), %rax
movzbl -0x2(%rax,%r12), %esi
movzbl -0x1(%rax,%r12), %edx
movzbl (%rax,%r12), %ecx
leaq -0x10(%rsp), %rsp
jmp 0x3d24
movq -0x30(%rbp), %rax
movzbl (%rax,%r13,2), %ecx
movzbl 0x1(%rax,%r13,2), %r8d
leaq -0x10(%rsp), %rsp
movl %ecx, %esi
movl %ecx, %edx
jmp 0x3d2a
movq -0x30(%rbp), %rax
movzbl (%rax,%r13,4), %esi
movzbl 0x1(%rax,%r13,4), %edx
movzbl 0x2(%rax,%r13,4), %ecx
movzbl 0x3(%rax,%r13,4), %r8d
leaq -0x10(%rsp), %rsp
jmp 0x3d2a
movl %r13d, %eax
movl %r13d, %ecx
movq -0x30(%rbp), %rdx
shrl %eax
andb $0x1, %cl
movb (%rdx,%rax), %al
shrb %cl, %al
andb $0xf, %al
jmp 0x3cb1
movl %r13d, %eax
movl %r13d, %ecx
movq -0x30(%rbp), %rdx
shrl %eax
andb $0x1, %cl
movb (%rdx,%rax), %al
shrb %cl, %al
andb $0xf, %al
movzbl %al, %eax
imull $0x11, %eax, %eax
jmp 0x3d18
movl %r13d, %eax
movl %r13d, %ecx
movq -0x30(%rbp), %rdx
shrl $0x2, %eax
andb $0x3, %cl
movb (%rdx,%rax), %al
shrb %cl, %al
andb $0x3, %al
jmp 0x3cb1
movq -0x30(%rbp), %rax
movb (%rax,%r13), %al
movzbl %al, %eax
cmpl %eax, 0x30(%rbx)
jle 0x3d58
cmpl %eax, 0x40(%rbx)
movl %eax, %ecx
movb $-0x1, %al
jle 0x3ccd
movq 0x38(%rbx), %rax
movb (%rax,%rcx), %al
movq 0x28(%rbx), %r8
leaq (%rcx,%rcx,2), %rcx
leaq -0x10(%rsp), %rsp
movzbl (%r8,%rcx), %esi
movzbl 0x1(%r8,%rcx), %edx
movzbl 0x2(%r8,%rcx), %ecx
movzbl %al, %r8d
jmp 0x3d2a
movl %r13d, %eax
movl %r13d, %ecx
movq -0x30(%rbp), %rdx
shrl $0x2, %eax
andb $0x3, %cl
movb (%rdx,%rax), %al
shrb %cl, %al
andb $0x3, %al
movzbl %al, %eax
imull $0x55, %eax, %eax
jmp 0x3d18
movq -0x30(%rbp), %rax
movb (%rax,%r13), %al
leaq -0x10(%rsp), %rsp
movzbl %al, %ecx
movl %ecx, %esi
movl %ecx, %edx
movl $0xff, %r8d
callq 0x3d6d
leaq 0x10(%rsp), %rsp
movq %rax, %rdi
incq %r13
addq $0x3, %r12
jmp 0x3b46
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %r12
movq -0x60(%rbp), %r13
movq %rax, -0x38(%rbp)
jmp 0x3820
xorl %eax, %eax
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movb $0x1, %al
jmp 0x3d5a