// File: /workspace/github_c_makefile_star2_O0/florianne1212[P]Cub3D_42/srcs/manage_sprite.c
// Function: sprite_cast_2
void			sprite_cast_2(t_img_coord *co, int i)
{
	co->calc->sprite_x = co->mapi.sprite[co->sprite_order[i]].x -
	co->posx + 0.5;
	co->calc->sprite_y = co->mapi.sprite[co->sprite_order[i]].y -
	co->posy + 0.5;
	co->calc->invdet = 1.0 / (co->planex * co->diry - co->dirx * co->planey);
	co->calc->transformx = co->calc->invdet * (co->diry *
	co->calc->sprite_x - co->dirx * co->calc->sprite_y);
	co->calc->transformy = co->calc->invdet * (-co->planey *
	co->calc->sprite_x + co->planex * co->calc->sprite_y);
	co->calc->scren_x = (int)((co->argi.reso_x / 2) *
	(1 + co->calc->transformx / co->calc->transformy));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0xc8(%rcx), %rcx
movslq -0xc(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
cvtsi2sdl (%rax,%rcx,8), %xmm0
movq -0x8(%rbp), %rax
subsd (%rax), %xmm0
movsd 0x893a(%rip), %xmm1     # 0x12438
addsd %xmm1, %xmm0
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
movsd %xmm0, (%rax)
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0xc8(%rcx), %rcx
movslq -0xc(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
cvtsi2sdl 0x4(%rax,%rcx,8), %xmm0
movq -0x8(%rbp), %rax
subsd 0x8(%rax), %xmm0
movsd 0x88f2(%rip), %xmm1     # 0x12438
addsd %xmm1, %xmm0
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
movsd %xmm0, 0x8(%rax)
movq -0x8(%rbp), %rax
movsd 0x20(%rax), %xmm1
movq -0x8(%rbp), %rax
movsd 0x18(%rax), %xmm2
movq -0x8(%rbp), %rax
movsd 0x10(%rax), %xmm0
movq -0x8(%rbp), %rax
mulsd 0x28(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd 0x887b(%rip), %xmm0     # 0x12420
divsd %xmm1, %xmm0
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
movsd %xmm0, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
movsd 0x10(%rax), %xmm0
movq -0x8(%rbp), %rax
movsd 0x18(%rax), %xmm1
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
movsd (%rax), %xmm3
movq -0x8(%rbp), %rax
movsd 0x10(%rax), %xmm2
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
mulsd 0x8(%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
movq 0xe8(%rax), %rax
movsd %xmm0, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
movsd 0x10(%rax), %xmm0
movq -0x8(%rbp), %rax
movsd 0x28(%rax), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
movsd (%rax), %xmm3
movq -0x8(%rbp), %rax
movsd 0x20(%rax), %xmm2
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
mulsd 0x8(%rax), %xmm2
mulsd %xmm3, %xmm1
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
movsd %xmm0, 0x20(%rax)
movq -0x8(%rbp), %rax
movl 0x140(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cvtsi2sd %eax, %xmm0
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
movsd 0x18(%rax), %xmm2
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
divsd 0x20(%rax), %xmm2
movsd 0x8741(%rip), %xmm1     # 0x12420
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %ecx
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rax
movl %ecx, 0x28(%rax)
popq %rbp
retq
nopl (%rax,%rax)