// File: /workspace/github_c_makefile_star2_O0/aap[P]rx-0/misc/crt.c
// Function: drawtoscreen
static void
drawtoscreen(CRT *crt, int i, int phos2, int phos1)
{
	float c;
	int r, g, b, a;
	Color p1col = phos1ramp[phos1];
	Color p2col = phos2ramp[phos2];

	if(phos2 == 0 || phos1 == 255){
		/* only Phosphor 1 */
		p1col.a = (phos2 == 0 && phos1 < pixelHaloMinIntensity) ?
			pixelHaloMinIntensity : phos1;
		crt->pixels[i] = RGBA(p1col.r, p1col.g, p1col.b, p1col.a);
	}else{
		/* both phosphors */
		c = p2col.a/255.0 * (1.0 - phos1/255.0);
		r = (p1col.r + p2col.r*c + p1col.r + p2col.r)/2.0;
		g = (p1col.g + p2col.g*c + p1col.g + p2col.g)/2.0;
		b = (p1col.b + p2col.b*c + p1col.b + p2col.b)/2.0;
		a = phos1 + p2col.a;
		if(r > 255) r = 255;
		if(g > 255) g = 255;
		if(b > 255) b = 255;
		if(a > 255) a = 255;
		crt->pixels[i] = RGBA(r, g, b, a);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0x1d042b4(%rip), %rax   # 0x1d083c0
movl (%rax,%rcx,4), %eax
movl %eax, -0x2c(%rbp)
movslq -0x10(%rbp), %rcx
leaq 0x1d046b3(%rip), %rax   # 0x1d087d0
movl (%rax,%rcx,4), %eax
movl %eax, -0x30(%rbp)
cmpl $0x0, -0x10(%rbp)
je 0x4132
cmpl $0xff, -0x14(%rbp)
jne 0x418d
cmpl $0x0, -0x10(%rbp)
jne 0x414e
movl -0x14(%rbp), %eax
cmpl 0x414f(%rip), %eax      # 0x8290
jge 0x414e
movl 0x4147(%rip), %eax      # 0x8290
movl %eax, -0x34(%rbp)
jmp 0x4154
movl -0x14(%rbp), %eax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
movb %al, -0x29(%rbp)
movzbl -0x2c(%rbp), %edx
shll $0x18, %edx
movzbl -0x2b(%rbp), %eax
shll $0x10, %eax
orl %eax, %edx
movzbl -0x2a(%rbp), %eax
shll $0x8, %eax
orl %eax, %edx
movzbl -0x29(%rbp), %eax
orl %eax, %edx
movq -0x8(%rbp), %rax
movslq -0xc(%rbp), %rcx
movl %edx, 0x1900014(%rax,%rcx,4)
jmp 0x4323
movzbl -0x2d(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd 0x1e7b(%rip), %xmm1     # 0x6018
divsd %xmm1, %xmm0
cvtsi2sdl -0x14(%rbp), %xmm2
movsd 0x1e6a(%rip), %xmm1     # 0x6018
divsd %xmm1, %xmm2
movsd 0x1e56(%rip), %xmm1     # 0x6010
subsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x18(%rbp)
movzbl -0x2c(%rbp), %eax
cvtsi2ss %eax, %xmm1
movzbl -0x30(%rbp), %eax
cvtsi2ss %eax, %xmm0
movss -0x18(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movzbl -0x2c(%rbp), %eax
cvtsi2ss %eax, %xmm1
addss %xmm1, %xmm0
movzbl -0x30(%rbp), %eax
cvtsi2ss %eax, %xmm1
addss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1e3c(%rip), %xmm1     # 0x6048
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x1c(%rbp)
movzbl -0x2b(%rbp), %eax
cvtsi2ss %eax, %xmm1
movzbl -0x2f(%rbp), %eax
cvtsi2ss %eax, %xmm0
movss -0x18(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movzbl -0x2b(%rbp), %eax
cvtsi2ss %eax, %xmm1
addss %xmm1, %xmm0
movzbl -0x2f(%rbp), %eax
cvtsi2ss %eax, %xmm1
addss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1df0(%rip), %xmm1     # 0x6048
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x20(%rbp)
movzbl -0x2a(%rbp), %eax
cvtsi2ss %eax, %xmm1
movzbl -0x2e(%rbp), %eax
cvtsi2ss %eax, %xmm0
movss -0x18(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movzbl -0x2a(%rbp), %eax
cvtsi2ss %eax, %xmm1
addss %xmm1, %xmm0
movzbl -0x2e(%rbp), %eax
cvtsi2ss %eax, %xmm1
addss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1da4(%rip), %xmm1     # 0x6048
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x24(%rbp)
movl -0x14(%rbp), %eax
movzbl -0x2d(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x28(%rbp)
cmpl $0xff, -0x1c(%rbp)
jle 0x42cb
movl $0xff, -0x1c(%rbp)
cmpl $0xff, -0x20(%rbp)
jle 0x42db
movl $0xff, -0x20(%rbp)
cmpl $0xff, -0x24(%rbp)
jle 0x42eb
movl $0xff, -0x24(%rbp)
cmpl $0xff, -0x28(%rbp)
jle 0x42fb
movl $0xff, -0x28(%rbp)
movl -0x1c(%rbp), %edx
shll $0x18, %edx
movl -0x20(%rbp), %eax
shll $0x10, %eax
orl %eax, %edx
movl -0x24(%rbp), %eax
shll $0x8, %eax
orl %eax, %edx
orl -0x28(%rbp), %edx
movq -0x8(%rbp), %rax
movslq -0xc(%rbp), %rcx
movl %edx, 0x1900014(%rax,%rcx,4)
popq %rbp
retq
nopw %cs:(%rax,%rax)