// File: /workspace/github_c_makefile_star2_O1/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 -0x68(%rsp), %rsp
movq %rdi, %r13
movslq 0x20(%rdi), %rbx
movslq 0x24(%rdi), %r14
leaq (%r14,%rbx), %rax
movl %edx, %r12d
leaq 0x28047(%rax,%rax), %rcx
movq %rsi, -0x68(%rbp)
andq $-0x10, %rcx
movq %rsp, %rdx
movq %rdx, %r15
subq %rcx, %r15
movq %r15, %rsp
leaq 0x28038(%r15), %rdi
leaq 0x28038(%r15,%r14), %rsi
xorps %xmm0, %xmm0
movq %rsi, -0x48(%rbp)
addq %rsi, %rbx
movups %xmm0, 0x1c(%r15)
movaps %xmm0, 0x10(%r15)
movaps %xmm0, (%r15)
movw $0x1, 0x2c(%r15)
movl $0x0, 0x30(%r15)
movq 0x48(%r13), %rsi
movl 0x50(%r13), %r8d
leaq 0x2(%rsi), %r9
leal -0x2(%r8), %r8d
movq %r9, 0x10(%r15)
leaq 0x2(%rsi,%r8), %rsi
negq %rcx
leaq 0x6be(%rip), %r8        # 0x4207
movq %rsi, 0x18(%rdx,%rcx)
movq %r8, (%r15)
movq %r13, 0x8(%r15)
movslq %eax, %rdx
xorl %esi, %esi
movq $0x0, -0x58(%rbp)
callq 0x10d0
movq %rbx, %rdi
xorl %esi, %esi
movq %r14, %rdx
callq 0x10d0
addq %r14, %rbx
movq %rbx, %rax
leaq 0x8034(%r15), %rcx
movq %rcx, -0x88(%rbp)
leaq 0x18034(%r15), %rcx
movq %rcx, -0x70(%rbp)
leaq 0x34(%r15), %rcx
movslq %r12d, %rdx
movq %rdx, -0x60(%rbp)
movq %r13, -0x40(%rbp)
movq %rcx, -0x30(%rbp)
movq -0x58(%rbp), %rdx
movslq 0x14(%r13), %rsi
movq %rsi, -0x78(%rbp)
cmpq %rsi, %rdx
jge 0x41f1
movq %rax, -0x50(%rbp)
movl 0x20(%r13), %esi
movq %rdx, -0x38(%rbp)
leaq 0x1(%rdx), %rcx
incl %esi
movq %rcx, -0x58(%rbp)
movl %ecx, %ebx
movq %rsi, -0x80(%rbp)
imull %esi, %ebx
cmpl %ebx, 0x28(%r15)
setae %r14b
jb 0x3c23
testb $0x1, %r14b
je 0x3dc4
movq -0x38(%rbp), %rdx
movq -0x80(%rbp), %rsi
imull %edx, %esi
movl %esi, %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movq -0x30(%rbp), %rcx
movzbl (%rcx,%rax), %ebx
cmpl $0x4, %ebx
movq -0x50(%rbp), %r14
jbe 0x3dd3
xorl %edi, %edi
movq %r14, %rax
movq -0x40(%rbp), %r13
jmp 0x41e0
xorl %r14d, %r14d
cmpb $0x1, 0x2c(%r15)
jne 0x3c7f
movl 0x30(%r15), %eax
testl %eax, %eax
jle 0x3cc8
decl %eax
movl %eax, 0x30(%r15)
movq %r15, %rdi
movl $0x8, %esi
callq 0x47f9
movl 0x24(%r15), %ecx
cmpl $0x8, %ecx
movb $-0x1, %al
jl 0x3c6b
movl 0x20(%r15), %eax
movl %eax, %edx
shrl $0x8, %edx
addl $-0x8, %ecx
movl %edx, 0x20(%r15)
movl %ecx, 0x24(%r15)
movl 0x28(%r15), %r13d
movl %r13d, %ecx
andl $0x7fff, %ecx           # imm = 0x7FFF
movb %al, 0x34(%r15,%rcx)
jmp 0x3cb6
movq %r15, %rdi
movq -0x88(%rbp), %rsi
movl $0xf, %edx
callq 0x479f
testl %eax, %eax
js 0x3be4
movl %eax, %r12d
cmpl $0xff, %eax
jg 0x3cbf
movl 0x28(%r15), %r13d
movl %r13d, %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movb %r12b, 0x34(%r15,%rax)
incl %r13d
movl %r13d, 0x28(%r15)
jmp 0x3ce3
cmpl $0x100, %r12d           # imm = 0x100
jne 0x3cf6
cmpb $0x0, 0x2d(%r15)
jne 0x3be4
movq %r15, %rdi
callq 0x428a
testb %al, %al
je 0x3be4
cmpl %ebx, 0x28(%r15)
setae %r14b
jb 0x3c26
jmp 0x3be4
cmpl $0x108, %r12d           # imm = 0x108
jg 0x3d0b
addl $0xffffff02, %r12d      # imm = 0xFFFFFF02
movl %r12d, %r13d
jmp 0x3d42
cmpl $0x11c, %r12d           # imm = 0x11C
movl $0x102, %r13d           # imm = 0x102
jg 0x3d42
leal -0x105(%r12), %esi
shrl $0x2, %esi
addl $0xfffffef7, %r12d      # imm = 0xFFFFFEF7
movq %r15, %rdi
callq 0x4256
movl %eax, %r13d
leaq 0xa602(%rip), %rax      # 0xe340
addl (%rax,%r12,4), %r13d
movq %r15, %rdi
movq -0x70(%rbp), %rsi
movl $0xf, %edx
callq 0x479f
testl %eax, %eax
js 0x3be4
movl %eax, %r12d
cmpl $0x3, %eax
jg 0x3d68
incl %r12d
jmp 0x3d89
leal -0x2(%r12), %esi
shrl %esi
addl $-0x4, %r12d
movq %r15, %rdi
callq 0x4256
leaq 0xa60e(%rip), %rcx      # 0xe390
addl (%rcx,%r12,4), %eax
movl %eax, %r12d
movq -0x30(%rbp), %rdi
movl $0x7fff, %r8d           # imm = 0x7FFF
testl %r13d, %r13d
jle 0x3dbb
movl 0x28(%r15), %eax
negl %r12d
movl %r13d, %ecx
leal (%r12,%rax), %edx
andl %r8d, %edx
movl %eax, %esi
andl %r8d, %esi
leal 0x1(%rax), %eax
movb (%rdi,%rdx), %dl
decl %ecx
movb %dl, (%rdi,%rsi)
jne 0x3da2
addl 0x28(%r15), %r13d
jmp 0x3cb9
xorl %edi, %edi
movq -0x50(%rbp), %rax
movq -0x40(%rbp), %r13
jmp 0x41dc
incl %esi
movq -0x40(%rbp), %r13
movq %rsi, %rcx
movl 0x20(%r13), %r12d
andl $0x7fff, %ecx           # imm = 0x7FFF
leal (%r12,%rcx), %eax
cmpl $0x8001, %eax           # imm = 0x8001
movl %ecx, %esi
jb 0x3e1c
movl $0x8000, %r13d          # imm = 0x8000
subl %ecx, %r13d
addq -0x30(%rbp), %rsi
movq %r14, %rdi
movq %r13, %rdx
callq 0x1140
leaq (%r14,%r13), %rdi
subl %r13d, %r12d
movq -0x40(%rbp), %r13
movq -0x30(%rbp), %rsi
jmp 0x3e23
addq -0x30(%rbp), %rsi
movq %r14, %rdi
movq %r12, %rdx
callq 0x1140
cmpl $0x0, 0x20(%r13)
movq -0x48(%rbp), %r12
jle 0x3f18
xorl %eax, %eax
leal -0x1(%rbx), %ecx
cmpl $0x3, %ecx
ja 0x3eef
leaq 0xa47d(%rip), %rdx      # 0xe2cc
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movslq 0x24(%r13), %rcx
leaq (%r14,%rax), %rdx
subq %rcx, %rdx
movb (%rdx), %cl
jmp 0x3eeb
movslq 0x24(%r13), %rcx
leaq (%r14,%rax), %rdx
subq %rcx, %rdx
movzbl (%rdx), %ecx
movzbl (%r12,%rax), %edx
addl %ecx, %edx
shrl %edx
addb %dl, (%r14,%rax)
jmp 0x3eef
movslq 0x24(%r13), %rdx
movq %r14, %rcx
subq %rdx, %rcx
movzbl (%rcx,%rax), %esi
leaq (%r12,%rax), %rdi
movzbl (%r12,%rax), %ecx
subq %rdx, %rdi
movzbl (%rdi), %edx
leal (%rcx,%rsi), %r10d
subl %edx, %r10d
movl %r10d, %r8d
subl %esi, %r8d
movl %r8d, %edi
negl %edi
movl %r10d, %r9d
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 0x3f01
cmpl %r9d, %edi
ja 0x3f01
addb %sil, (%r14,%rax)
jmp 0x3eef
movb (%r12,%rax), %cl
addb %cl, (%r14,%rax)
incq %rax
movslq 0x20(%r13), %rcx
cmpq %rcx, %rax
jl 0x3e3c
jmp 0x3f18
cmpl %r9d, %r8d
movb (%r14,%rax), %sil
jbe 0x3f0f
addb %dl, %sil
jmp 0x3f12
addb %cl, %sil
movb %sil, (%r14,%rax)
jmp 0x3eef
cmpl $0x0, 0x10(%r13)
setle %dil
jle 0x41d5
movq -0x38(%rbp), %rax
imulq -0x60(%rbp), %rax
addq -0x68(%rbp), %rax
movl $0x2, %edx
xorl %esi, %esi
xorl %edi, %edi
leaq 0xa398(%rip), %r10      # 0xe2dc
movl 0x1c(%r13), %ecx
cmpq $0x6, %rcx
ja 0x41bd
movslq (%r10,%rcx,4), %rcx
addq %r10, %rcx
jmpq *%rcx
movl 0x18(%r13), %edi
xorl %ecx, %ecx
decl %edi
cmpl $0x7, %edi
ja 0x41a8
leaq 0xa3a5(%rip), %r8       # 0xe318
movslq (%r8,%rdi,4), %rdi
addq %r8, %rdi
jmpq *%rdi
movl %esi, %ecx
shrl $0x3, %ecx
movl %esi, %edi
movzbl (%r14,%rcx), %ecx
andl $0x7, %edi
btl %edi, %ecx
movl $0x0, %ecx
sbbl %ecx, %ecx
jmp 0x41a8
movl 0x18(%r13), %ecx
xorl %r8d, %r8d
decl %ecx
cmpl $0x7, %ecx
ja 0x40ea
leaq 0xa345(%rip), %r9       # 0xe2f8
movslq (%r9,%rcx,4), %rcx
addq %r9, %rcx
jmpq *%rcx
movl %esi, %ecx
shrl $0x3, %ecx
movl %esi, %r8d
movzbl (%r14,%rcx), %ecx
andl $0x7, %r8d
btl %r8d, %ecx
setb %r8b
jmp 0x40ea
movzbl -0x2(%r14,%rdx), %ecx
movzbl -0x1(%r14,%rdx), %edi
movzbl (%r14,%rdx), %r8d
shll $0x8, %ecx
shll $0x10, %edi
orl %ecx, %edi
shll $0x18, %r8d
leal 0xff(%r8,%rdi), %ecx
jmp 0x41b7
movzbl (%r14,%rsi,2), %ecx
movzbl 0x1(%r14,%rsi,2), %edi
imull %edi, %ecx
imulq $0x1010102, %rcx, %rcx  # imm = 0x1010102
shrq $0x20, %rcx
movl %ecx, %r8d
movl %ecx, %r9d
shll $0x8, %r8d
shll $0x10, %r9d
orl %r8d, %r9d
shll $0x18, %ecx
orl %r9d, %ecx
jmp 0x408a
movzbl 0x2(%r14,%rsi,4), %ecx
movzbl 0x3(%r14,%rsi,4), %edi
imull %edi, %ecx
movzbl (%r14,%rsi,4), %r8d
movzbl 0x1(%r14,%rsi,4), %r9d
imull %edi, %r8d
imulq $0x1010102, %rcx, %rcx  # imm = 0x1010102
imull %edi, %r9d
imulq $0x1010102, %r8, %r8    # imm = 0x1010102
imulq $0x1010102, %r9, %r9    # imm = 0x1010102
shrq $0x20, %rcx
shrq $0x20, %r8
shrq $0x20, %r9
shll $0x8, %r8d
shll $0x10, %r9d
orl %r8d, %r9d
shll $0x18, %ecx
orl %r9d, %ecx
orl %edi, %ecx
jmp 0x41b7
movl %esi, %r8d
movl %esi, %ecx
shrl %r8d
andb $0x1, %cl
movb (%r14,%r8), %r8b
shrb %cl, %r8b
andb $0xf, %r8b
jmp 0x40ea
movl %esi, %edi
movl %esi, %ecx
shrl %edi
andb $0x1, %cl
movb (%r14,%rdi), %dil
shrb %cl, %dil
andb $0xf, %dil
movzbl %dil, %edi
movl %edi, %ecx
shll $0x4, %ecx
addl %edi, %ecx
jmp 0x41a8
movl %esi, %r8d
movl %esi, %ecx
shrl $0x2, %r8d
andb $0x3, %cl
movb (%r14,%r8), %r8b
shrb %cl, %r8b
andb $0x3, %r8b
jmp 0x40ea
movb (%r14,%rsi), %r8b
movzbl %r8b, %ecx
movl 0x30(%r13), %r8d
cmpl %ecx, %r8d
jle 0x417f
cmpl %ecx, 0x40(%r13)
movl %ecx, %r10d
movl $0xff, %r9d
jle 0x4113
movq 0x38(%r13), %r9
movzbl (%r9,%r10), %r9d
movq 0x28(%r13), %r11
leaq (%r10,%r10,2), %r10
movzbl 0x2(%r11,%r10), %ebx
imull %r9d, %ebx
movzbl (%r11,%r10), %r14d
movzbl 0x1(%r11,%r10), %r11d
imull %r9d, %r14d
imulq $0x1010102, %rbx, %r10  # imm = 0x1010102
imull %r9d, %r11d
imulq $0x1010102, %r14, %rbx  # imm = 0x1010102
imulq $0x1010102, %r11, %r11  # imm = 0x1010102
shrq $0x20, %r10
shrq $0x20, %rbx
shrq $0x20, %r11
shll $0x8, %ebx
shll $0x10, %r11d
orl %ebx, %r11d
shll $0x18, %r10d
orl %r11d, %r10d
orl %r9d, %r10d
movl %r10d, (%rax)
addq $0x4, %rax
movq -0x50(%rbp), %r14
leaq 0xa15d(%rip), %r10      # 0xe2dc
cmpl %ecx, %r8d
jg 0x41bd
jmp 0x41ec
movl %esi, %edi
movl %esi, %ecx
shrl $0x2, %edi
andb $0x3, %cl
movb (%r14,%rdi), %dil
shrb %cl, %dil
andb $0x3, %dil
movzbl %dil, %ecx
imull $0x55, %ecx, %ecx
jmp 0x41a8
movb (%r14,%rsi), %cl
movzbl %cl, %ecx
imull $0x1010100, %ecx, %ecx  # imm = 0x1010100
orl $0xff, %ecx
movl %ecx, (%rax)
addq $0x4, %rax
incq %rsi
movslq 0x10(%r13), %rcx
addq $0x3, %rdx
cmpq %rcx, %rsi
setge %dil
jl 0x3f44
movq %r12, %rax
movq %r14, -0x48(%rbp)
movq -0x38(%rbp), %rdx
testb $0x1, %dil
jne 0x3ba6
jmp 0x41f1
movq %r14, %rax
jmp 0x41dc
cmpq -0x78(%rbp), %rdx
setge %al
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq