// File: /workspace/github_c_makefile_star2_O0/iciamyplant[P]Cub3d-Linux/src/sprites.c
// Function: ft_calculs
void	ft_calculs(t_recup *recup, int i)
{
	recup->s.spritex = recup->sxy[recup->s.order[i]].x - recup->ray.posx;
	recup->s.spritey = recup->sxy[recup->s.order[i]].y - recup->ray.posy;
	recup->s.invdet = 1.0 / (recup->ray.planx * recup->ray.diry -
			recup->ray.dirx * recup->ray.plany);
	recup->s.transformx = recup->s.invdet * (recup->ray.diry *
			recup->s.spritex - recup->ray.dirx * recup->s.spritey);
	recup->s.transformy = recup->s.invdet * (-recup->ray.plany *
			recup->s.spritex + recup->ray.planx * recup->s.spritey);
	recup->s.spritescreenx = (int)((recup->rx / 2) * (1 + recup->s.transformx
				/ recup->s.transformy));
	recup->s.spriteheight = abs((int)(recup->ry / (recup->s.transformy)));
	recup->s.drawstarty = -recup->s.spriteheight / 2 + recup->ry / 2;
	if (recup->s.drawstarty < 0)
		recup->s.drawstarty = 0;
	recup->s.drawendy = recup->s.spriteheight / 2 + recup->ry / 2;
	if (recup->s.drawendy >= recup->ry)
		recup->s.drawendy = recup->ry;
	recup->s.spritewidth = abs((int)(recup->ry / (recup->s.transformy)));
	recup->s.drawstartx = -recup->s.spritewidth / 2 + recup->s.spritescreenx;
	if (recup->s.drawstartx < 0)
		recup->s.drawstartx = 0;
	recup->s.drawendx = recup->s.spritewidth / 2 + recup->s.spritescreenx;
	if (recup->s.drawendx >= recup->rx)
		recup->s.drawendx = recup->rx;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x418(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x3b8(%rcx), %rcx
movslq -0xc(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movq -0x8(%rbp), %rax
subsd 0x2d8(%rax), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0x3c8(%rax)
movq -0x8(%rbp), %rax
movq 0x418(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x3b8(%rcx), %rcx
movslq -0xc(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
subsd 0x2e0(%rax), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0x3d0(%rax)
movq -0x8(%rbp), %rax
movsd 0x2f8(%rax), %xmm1
movq -0x8(%rbp), %rax
movsd 0x2f0(%rax), %xmm2
movq -0x8(%rbp), %rax
movsd 0x2e8(%rax), %xmm0
movq -0x8(%rbp), %rax
mulsd 0x300(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd 0x4f5b(%rip), %xmm0     # 0x100a0
divsd %xmm1, %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0x3d8(%rax)
movq -0x8(%rbp), %rax
movsd 0x3d8(%rax), %xmm0
movq -0x8(%rbp), %rax
movsd 0x2f0(%rax), %xmm1
movq -0x8(%rbp), %rax
movsd 0x3c8(%rax), %xmm3
movq -0x8(%rbp), %rax
movsd 0x2e8(%rax), %xmm2
movq -0x8(%rbp), %rax
mulsd 0x3d0(%rax), %xmm2
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
mulsd %xmm3, %xmm1
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0x3e0(%rax)
movq -0x8(%rbp), %rax
movsd 0x3d8(%rax), %xmm0
movq -0x8(%rbp), %rax
movsd 0x300(%rax), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
movq -0x8(%rbp), %rax
movsd 0x3c8(%rax), %xmm3
movq -0x8(%rbp), %rax
movsd 0x2f8(%rax), %xmm2
movq -0x8(%rbp), %rax
mulsd 0x3d0(%rax), %xmm2
mulsd %xmm3, %xmm1
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0x3e8(%rax)
movq -0x8(%rbp), %rax
movl (%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cvtsi2sd %eax, %xmm0
movq -0x8(%rbp), %rax
movsd 0x3e0(%rax), %xmm2
movq -0x8(%rbp), %rax
divsd 0x3e8(%rax), %xmm2
movsd 0x4e43(%rip), %xmm1     # 0x100a0
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x3f0(%rax)
movq -0x8(%rbp), %rax
cvtsi2sdl 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
divsd 0x3e8(%rax), %xmm0
cvttsd2si %xmm0, %ecx
movl %ecx, %eax
negl %eax
cmovnsl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x3f4(%rax)
movq -0x8(%rbp), %rcx
xorl %eax, %eax
subl 0x3f4(%rcx), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
addl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x3fc(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x3fc(%rax)
jge 0xb2e9
movq -0x8(%rbp), %rax
movl $0x0, 0x3fc(%rax)
movq -0x8(%rbp), %rax
movl 0x3f4(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movl $0x2, %esi
cltd
idivl %esi
addl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x400(%rax)
movq -0x8(%rbp), %rax
movl 0x400(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jl 0xb33c
movq -0x8(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x400(%rax)
movq -0x8(%rbp), %rax
cvtsi2sdl 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
divsd 0x3e8(%rax), %xmm0
cvttsd2si %xmm0, %ecx
movl %ecx, %eax
negl %eax
cmovnsl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x408(%rax)
movq -0x8(%rbp), %rcx
xorl %eax, %eax
subl 0x408(%rcx), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movq -0x8(%rbp), %rax
addl 0x3f0(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x3f8(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x3f8(%rax)
jge 0xb3ab
movq -0x8(%rbp), %rax
movl $0x0, 0x3f8(%rax)
movq -0x8(%rbp), %rax
movl 0x408(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movq -0x8(%rbp), %rax
addl 0x3f0(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x404(%rax)
movq -0x8(%rbp), %rax
movl 0x404(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl (%rcx), %eax
jl 0xb3f5
movq -0x8(%rbp), %rax
movl (%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x404(%rax)
popq %rbp
retq
nopw (%rax,%rax)