// File: /workspace/github_c_makefile_star2_O0/jonof[P]jftekwar/jfbuild/src/polymosttex.c
// Function: ptm_applyeffects
static void ptm_applyeffects(PTTexture * tex, int effects)
{
	int alph = 255;
	int x, y;
	coltype * tptr = tex->pic;

	if (effects == 0 && usegammabrightness) {
		// use a quicker scan for alpha since we don't need
		// to be swizzling texel components
		for (y = tex->tsizy - 1; y >= 0; y--, tptr += tex->sizx) {
			for (x = tex->tsizx - 1; x >= 0; x--) {
				alph &= tptr[x].a;
			}
		}
	} else {
		unsigned char *brit = &britable[usegammabrightness ? 0 : curbrightness][0];
		coltype tcol;

		for (y = tex->tsizy - 1; y >= 0; y--, tptr += tex->sizx) {
			for (x = tex->tsizx - 1; x >= 0; x--) {
				tcol.b = brit[tptr[x].b];
				tcol.g = brit[tptr[x].g];
				tcol.r = brit[tptr[x].r];
				tcol.a = tptr[x].a;
				alph &= tptr[x].a;

				if (effects & HICEFFECT_GREYSCALE) {
					float y;
					y  = 0.3  * (float)tcol.r;
					y += 0.59 * (float)tcol.g;
					y += 0.11 * (float)tcol.b;
					tcol.b = (unsigned char)max(0.0, min(255.0, y));
					tcol.g = tcol.r = tcol.b;
				}
				if (effects & HICEFFECT_INVERT) {
					tcol.b = 255-tcol.b;
					tcol.g = 255-tcol.g;
					tcol.r = 255-tcol.r;
				}

				tptr[x] = tcol;
			}
		}
	}

	tex->hasalpha = (alph != 255);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl $0xff, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
cmpl $0x0, -0xc(%rbp)
jne 0x9952e
leaq 0x477c2(%rip), %rax     # 0xe0c7c
cmpl $0x0, (%rax)
je 0x9952e
movq -0x8(%rbp), %rax
movl 0x14(%rax), %eax
subl $0x1, %eax
movl %eax, -0x18(%rbp)
cmpl $0x0, -0x18(%rbp)
jl 0x99529
movq -0x8(%rbp), %rax
movl 0x10(%rax), %eax
subl $0x1, %eax
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jl 0x99503
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
movzbl 0x3(%rax,%rcx,4), %eax
andl -0x10(%rbp), %eax
movl %eax, -0x10(%rbp)
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x994df
jmp 0x99505
movl -0x18(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movl 0x8(%rax), %ecx
movq -0x20(%rbp), %rax
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
jmp 0x994cc
jmp 0x997a0
leaq 0x47747(%rip), %rax     # 0xe0c7c
cmpl $0x0, (%rax)
je 0x99541
xorl %eax, %eax
movl %eax, -0x34(%rbp)
jmp 0x9954d
leaq 0x15c01c(%rip), %rax    # 0x1f5564
movl (%rax), %eax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
movslq %eax, %rcx
leaq 0x3d84a6(%rip), %rax    # 0x471a00
shlq $0x8, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movl 0x14(%rax), %eax
subl $0x1, %eax
movl %eax, -0x18(%rbp)
cmpl $0x0, -0x18(%rbp)
jl 0x9979e
movq -0x8(%rbp), %rax
movl 0x10(%rax), %eax
subl $0x1, %eax
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jl 0x99775
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
movslq -0x14(%rbp), %rdx
movzbl 0x2(%rcx,%rdx,4), %ecx
movb (%rax,%rcx), %al
movb %al, -0x2a(%rbp)
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
movslq -0x14(%rbp), %rdx
movzbl 0x1(%rcx,%rdx,4), %ecx
movb (%rax,%rcx), %al
movb %al, -0x2b(%rbp)
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
movslq -0x14(%rbp), %rdx
movzbl (%rcx,%rdx,4), %ecx
movb (%rax,%rcx), %al
movb %al, -0x2c(%rbp)
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
movb 0x3(%rax,%rcx,4), %al
movb %al, -0x29(%rbp)
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
movzbl 0x3(%rax,%rcx,4), %eax
andl -0x10(%rbp), %eax
movl %eax, -0x10(%rbp)
movl -0xc(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x99724
movzbl -0x2c(%rbp), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1e88c(%rip), %xmm1    # 0xb7ea8
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x30(%rbp)
movzbl -0x2b(%rbp), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x30(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
movsd 0x1e86a(%rip), %xmm2    # 0xb7eb0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x30(%rbp)
movzbl -0x2a(%rbp), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x30(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
movsd 0x1e82c(%rip), %xmm2    # 0xb7ea0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x30(%rbp)
movss -0x30(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1968a(%rip), %xmm1    # 0xb2d20
ucomisd %xmm1, %xmm0
jbe 0x996ab
movsd 0x1967c(%rip), %xmm0    # 0xb2d20
movsd %xmm0, -0x40(%rbp)
jmp 0x996b9
movss -0x30(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x40(%rbp), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x996d1
xorps %xmm0, %xmm0
movsd %xmm0, -0x48(%rbp)
jmp 0x9970f
movss -0x30(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1963e(%rip), %xmm1    # 0xb2d20
ucomisd %xmm1, %xmm0
jbe 0x996f7
movsd 0x19630(%rip), %xmm0    # 0xb2d20
movsd %xmm0, -0x50(%rbp)
jmp 0x99705
movss -0x30(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x50(%rbp)
movsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x48(%rbp), %xmm0
cvttsd2si %xmm0, %eax
movb %al, -0x2a(%rbp)
movb -0x2a(%rbp), %al
movb %al, -0x2c(%rbp)
movb %al, -0x2b(%rbp)
movl -0xc(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x99759
movzbl -0x2a(%rbp), %ecx
movl $0xff, %eax
subl %ecx, %eax
movb %al, -0x2a(%rbp)
movzbl -0x2b(%rbp), %ecx
movl $0xff, %eax
subl %ecx, %eax
movb %al, -0x2b(%rbp)
movzbl -0x2c(%rbp), %ecx
movl $0xff, %eax
subl %ecx, %eax
movb %al, -0x2c(%rbp)
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
movl -0x2c(%rbp), %edx
movl %edx, (%rax,%rcx,4)
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x99589
jmp 0x99777
movl -0x18(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movl 0x8(%rax), %ecx
movq -0x20(%rbp), %rax
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
jmp 0x99572
jmp 0x997a0
cmpl $0xff, -0x10(%rbp)
setne %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x1c(%rax)
popq %rbp
retq
nopl (%rax,%rax)