LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/mini2d.c
// Function: draw_position
void		draw_position(t_img_coord *co)
{
	double	i;
	double	j;
	int		e;

	i = (co->argi.reso_x / 5) / co->mapi.width_map;
	j = (co->argi.reso_y / 5) / (co->mapi.height_map);
	e = 0;
	if (co->argi.reso_x > 15 && co->argi.reso_y > 15)
	{
		while (e < 5)
		{
			my_mlx_pixel_put(co->img, ((co->posx * i) + e),
			((co->posy * j)), 0x00FF0000);
			my_mlx_pixel_put(co->img, ((co->posx * i) - e),
			((co->posy * j)), 0x00FF0000);
			my_mlx_pixel_put(co->img, (co->posx * i),
			(co->posy * j - e), 0x00FF0000);
			my_mlx_pixel_put(co->img, (co->posx * i),
			(co->posy * j + e), 0x00FF0000);
			e++;
		}
	}
}

// Assembly:
pushq %rbp
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
movslq 0x140(%rdi), %rax
cmpq $0x10, %rax
setge %sil
imulq $0x66666667, %rax, %rax # imm = 0x66666667
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x21, %rax
addl %ecx, %eax
cltd
idivl 0x1c8(%rdi)
movl %eax, %ecx
movl 0x144(%rdi), %eax
movslq %eax, %rdi
imulq $0x66666667, %rdi, %rax # imm = 0x66666667
movq %rax, %rdx
shrq $0x3f, %rdx
sarq $0x21, %rax
addl %edx, %eax
cltd
idivl 0x1cc(%rbx)
cmpl $0x10, %edi
setge %dl
andb %sil, %dl
cmpb $0x1, %dl
jne 0x86d4
cvtsi2sd %ecx, %xmm0
movsd %xmm0, 0x8(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, (%rsp)
xorpd %xmm1, %xmm1
movl $0x5, %ebp
movsd %xmm1, 0x10(%rsp)
movq 0x130(%rbx), %rdi
movsd (%rbx), %xmm0
mulsd 0x8(%rsp), %xmm0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %esi
movsd 0x8(%rbx), %xmm0
mulsd (%rsp), %xmm0
cvttsd2si %xmm0, %edx
movl $0xff0000, %ecx         # imm = 0xFF0000
callq 0x741c
movq 0x130(%rbx), %rdi
movsd (%rbx), %xmm0
mulsd 0x8(%rsp), %xmm0
subsd 0x10(%rsp), %xmm0
cvttsd2si %xmm0, %esi
movsd 0x8(%rbx), %xmm0
mulsd (%rsp), %xmm0
cvttsd2si %xmm0, %edx
movl $0xff0000, %ecx         # imm = 0xFF0000
callq 0x741c
movq 0x130(%rbx), %rdi
movsd (%rbx), %xmm0
mulsd 0x8(%rsp), %xmm0
cvttsd2si %xmm0, %esi
movsd 0x8(%rbx), %xmm0
mulsd (%rsp), %xmm0
subsd 0x10(%rsp), %xmm0
cvttsd2si %xmm0, %edx
movl $0xff0000, %ecx         # imm = 0xFF0000
callq 0x741c
movq 0x130(%rbx), %rdi
movsd (%rbx), %xmm0
mulsd 0x8(%rsp), %xmm0
cvttsd2si %xmm0, %esi
movsd 0x8(%rbx), %xmm0
mulsd (%rsp), %xmm0
addsd 0x10(%rsp), %xmm0
cvttsd2si %xmm0, %edx
movl $0xff0000, %ecx         # imm = 0xFF0000
callq 0x741c
movsd 0x10(%rsp), %xmm1
addsd 0x5d4c(%rip), %xmm1     # 0xe418
decl %ebp
jne 0x85ee
addq $0x18, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/mini2d.c
// Function: draw_square
void		draw_square(t_img_coord *co, int x, int y)
{
	int		color;
	double	i;
	double	j;
	int		a;
	int		b;

	i = co->argi.reso_x / 5 / co->mapi.width_map;
	j = co->argi.reso_y / 5 / (co->mapi.height_map);
	a = 0;
	while ((x + a) < (x + i))
	{
		b = 0;
		while ((y + b) < (y + j))
		{
			if (co->mapi.mapp[y][x] == '1')
				color = 0x00337C85;
			else if (chose_color(co, x, y) == 1)
				color = 0x00F1D2FB;
			else
				color = 0x00581845;
			my_mlx_pixel_put(co->img, ((x * i) + a), ((y * j) + b), color);
			b++;
		}
		a++;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movl %edx, %ecx
movq %rdi, %rbx
movslq 0x140(%rdi), %rax
imulq $0x66666667, %rax, %rax # imm = 0x66666667
movq %rax, %rdx
shrq $0x3f, %rdx
sarq $0x21, %rax
addl %edx, %eax
cltd
idivl 0x1c8(%rdi)
movl %eax, %edi
movslq 0x144(%rbx), %rax
imulq $0x66666667, %rax, %rax # imm = 0x66666667
movq %rax, %rdx
shrq $0x3f, %rdx
sarq $0x21, %rax
addl %edx, %eax
cltd
idivl 0x1cc(%rbx)
cvtsi2sd %edi, %xmm0
movq %rsi, 0x10(%rsp)
cvtsi2sd %esi, %xmm1
movapd %xmm1, %xmm2
addsd %xmm0, %xmm2
movsd %xmm1, (%rsp)
movsd %xmm2, 0x28(%rsp)
ucomisd %xmm1, %xmm2
jbe 0x88b0
xorps %xmm2, %xmm2
cvtsi2sd %eax, %xmm2
cvtsi2sd %ecx, %xmm3
movapd %xmm3, %xmm1
addsd %xmm2, %xmm1
movsd %xmm1, 0x18(%rsp)
movslq %ecx, %r15
movslq 0x10(%rsp), %r12
leal 0x1(%r15), %r13d
movq $0x0, 0x8(%rsp)
movsd (%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, (%rsp)
movsd %xmm3, 0x20(%rsp)
mulsd %xmm3, %xmm2
movsd %xmm2, 0x30(%rsp)
movsd 0x18(%rsp), %xmm0
ucomisd 0x20(%rsp), %xmm0
jbe 0x8882
xorps %xmm0, %xmm0
cvtsi2sdl 0x8(%rsp), %xmm0
addsd (%rsp), %xmm0
cvttsd2si %xmm0, %ebp
xorl %r14d, %r14d
movq 0x1c0(%rbx), %rax
movq (%rax,%r15,8), %rax
movzbl (%rax,%r12), %eax
addl $-0x30, %eax
cmpl $0x27, %eax
ja 0x887b
movabsq $0x8840200001, %rcx     # imm = 0x8840200001
btq %rax, %rcx
jae 0x8870
movl $0xf1d2fb, %ecx         # imm = 0xF1D2FB
xorps %xmm0, %xmm0
cvtsi2sd %r14d, %xmm0
movq 0x130(%rbx), %rdi
addsd 0x30(%rsp), %xmm0
cvttsd2si %xmm0, %edx
movl %ebp, %esi
callq 0x741c
leal (%r14,%r13), %eax
incl %r14d
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd 0x18(%rsp), %xmm1
ucomisd %xmm0, %xmm1
ja 0x8807
jmp 0x8882
movl $0x337c85, %ecx         # imm = 0x337C85
cmpq $0x1, %rax
je 0x8834
movl $0x581845, %ecx         # imm = 0x581845
jmp 0x8834
movq 0x10(%rsp), %rax
movq 0x8(%rsp), %rcx
addl %ecx, %eax
incl %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
incl %ecx
movsd 0x28(%rsp), %xmm1
ucomisd %xmm0, %xmm1
movl %ecx, %eax
movq %rax, 0x8(%rsp)
ja 0x87e0
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/mini2d.c
// Function: draw_minimap
void		draw_minimap(t_img_coord *co)
{
	int		x;
	int		y;

	x = 0;
	y = 0;
	while (x < co->mapi.width_map)
	{
		while (y <= co->mapi.height_map)
		{
			draw_square(co, x, y);
			y++;
		}
		y = 0;
		x++;
	}
	draw_position(co);
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
movl 0x1c8(%rdi), %ecx
testl %ecx, %ecx
jle 0x8909
movl 0x1cc(%rbx), %eax
xorl %ebp, %ebp
testl %eax, %eax
js 0x8903
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
incl %r14d
movq %rbx, %rdi
movl %ebp, %esi
movl %r14d, %edx
callq 0x8711
movl 0x1cc(%rbx), %eax
cmpl %eax, %r14d
jl 0x88e2
movl 0x1c8(%rbx), %ecx
incl %ebp
cmpl %ecx, %ebp
jl 0x88d8
movq %rbx, %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x8564
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/movement.c
// Function: move_forward
int		move_forward(t_img_coord *co)
{
	char	at;
	double	next;
	double	movespeed;

	movespeed = 0.02;
	next = co->posy + co->diry * movespeed;
	at = co->mapi.mapp[(int)next][(int)co->posx];
	if (at != '1' && at != ' ' && at != '2')
		co->posy = next;
	next = co->posx + co->dirx * movespeed;
	at = co->mapi.mapp[(int)co->posy][(int)next];
	if (at != '1' && at != ' ' && at != '2')
		co->posx = next;
	co->x = 0;
	return (1);
}

// Assembly:
movsd (%rdi), %xmm0
movsd 0x8(%rdi), %xmm1
movsd 0x18(%rdi), %xmm2
mulsd 0x5b7a(%rip), %xmm2     # 0xe4a8
addsd %xmm1, %xmm2
movq 0x1c0(%rdi), %rax
cvttsd2si %xmm2, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rcx
cvttsd2si %xmm0, %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %edx
movabsq $0x6000100000000, %rcx  # imm = 0x6000100000000
cmpq $0x32, %rdx
ja 0x8965
btq %rdx, %rcx
jb 0x896e
movsd %xmm2, 0x8(%rdi)
movapd %xmm2, %xmm1
movsd 0x10(%rdi), %xmm2
mulsd 0x5b2d(%rip), %xmm2     # 0xe4a8
cvttsd2si %xmm1, %edx
addsd %xmm0, %xmm2
movslq %edx, %rdx
cvttsd2si %xmm2, %esi
movq (%rax,%rdx,8), %rax
movslq %esi, %rdx
movzbl (%rax,%rdx), %eax
cmpq $0x32, %rax
ja 0x89a1
btq %rax, %rcx
jb 0x89a5
movsd %xmm2, (%rdi)
movl $0x0, 0xa4(%rdi)
movl $0x1, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/movement.c
// Function: move_right
void	move_right(t_img_coord *co)
{
	char	at;
	double	next;
	double	movespeed;

	movespeed = 0.02;
	next = co->posy - co->planey * movespeed;
	at = co->mapi.mapp[(int)next][(int)co->posx];
	if (at != '1' && at != ' ' && at != '2')
		co->posy = next;
	next = co->posx - co->planex * movespeed;
	at = co->mapi.mapp[(int)co->posy][(int)next];
	if (at != '1' && at != ' ' && at != '2')
		co->posx = next;
	co->x = 0;
}

// Assembly:
movsd (%rdi), %xmm0
movsd 0x8(%rdi), %xmm1
movsd 0x28(%rdi), %xmm2
mulsd 0x5a4d(%rip), %xmm2     # 0xe4b0
addsd %xmm1, %xmm2
movq 0x1c0(%rdi), %rax
cvttsd2si %xmm2, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rcx
cvttsd2si %xmm0, %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %edx
movabsq $0x6000100000000, %rcx  # imm = 0x6000100000000
cmpq $0x32, %rdx
ja 0x8a9a
btq %rdx, %rcx
jb 0x8aa3
movsd %xmm2, 0x8(%rdi)
movapd %xmm2, %xmm1
movsd 0x20(%rdi), %xmm2
mulsd 0x5a00(%rip), %xmm2     # 0xe4b0
cvttsd2si %xmm1, %edx
addsd %xmm2, %xmm0
movslq %edx, %rdx
cvttsd2si %xmm0, %esi
movq (%rax,%rdx,8), %rax
movslq %esi, %rdx
movzbl (%rax,%rdx), %eax
cmpq $0x32, %rax
ja 0x8ad6
btq %rax, %rcx
jb 0x8ada
movsd %xmm0, (%rdi)
movl $0x0, 0xa4(%rdi)
retq
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_args.c
// Function: ft_else
size_t					ft_else(char *line, int e, t_args *args)
{
	if (ft_isspace(line[e]) == 1 || line[e] == 0 || line[e] == 32)
		return (0);
	else
	{
		put_color(RED, "\nERrror\n wrong char in your .cub file");
		exit(0);
		args->save = 0;
	}
	return (0);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movslq %esi, %r14
movsbl (%rdi,%r14), %edi
callq 0xa678
cmpl $0x1, %eax
je 0x8c82
movzbl (%rbx,%r14), %eax
testb $-0x21, %al
jne 0x8c8c
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
leaq 0x5379(%rip), %rdi      # 0xe00c
leaq 0x581e(%rip), %rsi      # 0xe4b8
callq 0xae58
xorl %edi, %edi
callq 0x60a0
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_args.c
// Function: set_funct_args
void					set_funct_args(t_args_funct *funct_args)
{
	size_t				i;

	i = 0;
	while (i < 254)
	{
		funct_args[i] = ft_else;
		i++;
	}
	funct_args[0] = ft_else;
	funct_args['R'] = ft_resolution;
	funct_args['N'] = ft_texture_north;
	funct_args['W'] = ft_texture_west;
	funct_args['E'] = ft_texture_east;
	funct_args['S'] = ft_s_case;
	funct_args['F'] = ft_floor_color;
	funct_args['C'] = ft_color_ceilling;
}

// Assembly:
xorl %eax, %eax
leaq -0x4f(%rip), %rcx       # 0x8c60
movq %rcx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movdqu %xmm0, (%rdi,%rax,8)
addq $0x2, %rax
cmpq $0xfe, %rax
jne 0x8cb9
movq %rcx, (%rdi)
leaq 0x966(%rip), %rax       # 0x963a
movq %rax, 0x290(%rdi)
leaq 0xe7d(%rip), %rax       # 0x9b5f
movq %rax, 0x270(%rdi)
leaq 0xf23(%rip), %rax       # 0x9c13
movq %rax, 0x2b8(%rdi)
leaq 0xfc9(%rip), %rax       # 0x9cc7
movq %rax, 0x228(%rdi)
leaq 0xc46(%rip), %rax       # 0x9952
movq %rax, 0x298(%rdi)
leaq 0x1e3(%rip), %rax       # 0x8efd
movq %rax, 0x230(%rdi)
leaq 0x32f(%rip), %rax       # 0x9057
movq %rax, 0x218(%rdi)
retq
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_args.c
// Function: ft_parse_arg
t_args					ft_parse_arg(char *line, t_args args)
{
	static t_args_funct	funct_args[255] = {NULL};
	int					i;

	if (args.set_p == -1)
	{
		set_funct_args(funct_args);
		args.set_p = 1;
	}
	i = 0;
	args.buf = line;
	while (i < ft_strlen(line))
	{
		if (funct_args[(int)line[i]] != NULL)
			i += funct_args[(int)line[i]](line, i, &args);
		i++;
	}
	return (args);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x30(%rsp), %r14
cmpl $-0x1, 0x80(%r14)
leaq 0xe55e(%rip), %r12      # 0x172b0
jne 0x8df1
xorl %eax, %eax
leaq -0x101(%rip), %rcx      # 0x8c60
movq %rcx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movdqa %xmm0, (%rax,%r12)
addq $0x10, %rax
cmpq $0x7f0, %rax            # imm = 0x7F0
jne 0x8d6b
movq %rcx, 0xe52c(%rip)      # 0x172b0
leaq 0x8af(%rip), %rax       # 0x963a
movq %rax, 0xe7ae(%rip)      # 0x17540
leaq 0xdc6(%rip), %rax       # 0x9b5f
movq %rax, 0xe780(%rip)      # 0x17520
leaq 0xe6c(%rip), %rax       # 0x9c13
movq %rax, 0xe7ba(%rip)      # 0x17568
leaq 0xf12(%rip), %rax       # 0x9cc7
movq %rax, 0xe71c(%rip)      # 0x174d8
leaq 0xb8f(%rip), %rax       # 0x9952
movq %rax, 0xe77e(%rip)      # 0x17548
leaq 0x12c(%rip), %rax       # 0x8efd
movq %rax, 0xe708(%rip)      # 0x174e0
leaq 0x278(%rip), %rax       # 0x9057
movq %rax, 0xe6e2(%rip)      # 0x174c8
movl $0x1, 0x80(%r14)
movq %r15, (%r14)
movq %r15, %rdi
callq 0xab20
testl %eax, %eax
jle 0x8e2f
xorl %ebp, %ebp
movslq %ebp, %rax
movsbq (%r15,%rax), %rax
movq (%r12,%rax,8), %rax
testq %rax, %rax
je 0x8e21
movq %r15, %rdi
movl %ebp, %esi
movq %r14, %rdx
callq *%rax
addl %ebp, %eax
movl %eax, %ebp
incl %ebp
movq %r15, %rdi
callq 0xab20
cmpl %eax, %ebp
jl 0x8e02
movl $0x88, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x63e0
movq %rbx, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_color.c
// Function: ft_value_color_f
int			ft_value_color_f(char *line, int e, t_args *args)
{
	int		d;
	int		result;

	d = 0;
	result = 0;
	while (e < ft_strlen(line) && ft_strcmp_c("01234567789-,", line[e]) == 1)
	{
		result = ft_atoi(&line[e]);
		if (result > 255 || result < 0)
		{
			put_color(RED, "\nError\n wrong value for the floor color");
			exit(0);
		}
		if (d == 0)
			args->color_floor_r = result;
		else if (d == 1)
			args->color_floor_g = result;
		else if (d == 2)
			args->color_floor_b = result;
		e += ft_count(result) + 1;
		d++;
	}
	return (e - 2);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movl %esi, %ebx
movq %rdi, %r15
callq 0xab20
cmpl %ebx, %eax
jle 0x8ecf
xorl %ebp, %ebp
leaq 0x566d(%rip), %r12      # 0xe4de
movslq %ebx, %r13
movsbl (%r15,%r13), %esi
movq %r12, %rdi
callq 0xa87c
cmpl $0x1, %eax
jne 0x8ecf
addq %r15, %r13
movq %r13, %rdi
callq 0xa68e
cmpl $0x100, %eax            # imm = 0x100
jae 0x8ee3
cmpl $0x2, %ebp
je 0x8eb2
cmpl $0x1, %ebp
je 0x8eac
testl %ebp, %ebp
jne 0x8eb6
movl %eax, 0x54(%r14)
jmp 0x8eb6
movl %eax, 0x58(%r14)
jmp 0x8eb6
movl %eax, 0x5c(%r14)
movl %eax, %edi
callq 0xacac
addl %eax, %ebx
incl %ebx
incl %ebp
movq %r15, %rdi
callq 0xab20
cmpl %eax, %ebx
jl 0x8e71
addl $-0x2, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x5122(%rip), %rdi      # 0xe00c
leaq 0x55fb(%rip), %rsi      # 0xe4ec
callq 0xae58
xorl %edi, %edi
callq 0x60a0
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_color.c
// Function: ft_floor_color
size_t		ft_floor_color(char *line, int e, t_args *args)
{
	int		i;
	int		r;
	int		j;

	r = 0;
	j = 0;
	i = 0;
	if (line[e] == 'F' && (ft_isspace(line[e + 1]) == 1 || line[e + 1] == 0))
	{
		check_twice_color_f(args);
		i = find_i(line, e, 2);
		while (line[e + i + j + 2] != '\0')
		{
			if (line[e + i + j + 2] == ',')
				r++;
			j++;
		}
		if (r != 2)
		{
			put_color(RED, "\nError\n wrong number of argument floor color");
			exit(0);
		}
		j = ft_value_color_f(line, (e + i + 2), args);
	}
	return (j);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movslq %esi, %r15
cmpb $0x46, (%rdi,%r15)
jne 0x8f2e
movq %rdx, %rbx
movl %esi, %ebp
movq %rdi, %r14
movsbl 0x1(%rdi,%r15), %edi
callq 0xa678
cmpl $0x1, %eax
je 0x8f32
cmpb $0x0, 0x1(%r14,%r15)
je 0x8f32
xorl %eax, %eax
jmp 0x8f84
movq %rbx, %rdi
callq 0x6ba8
movq %r14, %rdi
movl %ebp, %esi
movl $0x2, %edx
callq 0x6ed0
addl %ebp, %eax
movslq %eax, %rcx
leaq (%r14,%rcx), %rdx
addq $0x2, %rdx
xorl %ecx, %ecx
movzbl (%rdx), %esi
cmpl $0x2c, %esi
je 0x8f66
testl %esi, %esi
jne 0x8f68
jmp 0x8f6d
incl %ecx
incq %rdx
jmp 0x8f58
cmpl $0x2, %ecx
jne 0x8f8f
addl $0x2, %eax
movq %r14, %rdi
movl %eax, %esi
movq %rbx, %rdx
callq 0x8e4c
cltq
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x5076(%rip), %rdi      # 0xe00c
leaq 0x5577(%rip), %rsi      # 0xe514
callq 0xae58
xorl %edi, %edi
callq 0x60a0
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_color.c
// Function: ft_value_color_c
int			ft_value_color_c(char *line, int e, t_args *args)
{
	int		d;
	int		result;

	d = 0;
	result = 0;
	while (e < ft_strlen(line) && ft_strcmp_c("01234567789-,", line[e]) == 1)
	{
		result = ft_atoi(&line[e]);
		if (result > 255 || result < 0)
		{
			put_color(RED, "\nError\n wrong value for the ceiling's color");
			exit(0);
		}
		if (d == 0)
			args->color_ceiling_r = result;
		else if (d == 1)
			args->color_ceiling_g = result;
		else if (d == 2)
			args->color_ceiling_b = result;
		e += ft_count(result) + 1;
		d++;
	}
	return (e);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movl %esi, %ebx
movq %rdi, %r15
callq 0xab20
cmpl %ebx, %eax
jle 0x902c
xorl %ebp, %ebp
leaq 0x5510(%rip), %r12      # 0xe4de
movslq %ebx, %r13
movsbl (%r15,%r13), %esi
movq %r12, %rdi
callq 0xa87c
cmpl $0x1, %eax
jne 0x902c
addq %r15, %r13
movq %r13, %rdi
callq 0xa68e
cmpl $0x100, %eax            # imm = 0x100
jae 0x903d
cmpl $0x2, %ebp
je 0x900f
cmpl $0x1, %ebp
je 0x9009
testl %ebp, %ebp
jne 0x9013
movl %eax, 0x60(%r14)
jmp 0x9013
movl %eax, 0x64(%r14)
jmp 0x9013
movl %eax, 0x68(%r14)
movl %eax, %edi
callq 0xacac
addl %eax, %ebx
incl %ebx
incl %ebp
movq %r15, %rdi
callq 0xab20
cmpl %eax, %ebx
jl 0x8fce
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4fc8(%rip), %rdi      # 0xe00c
leaq 0x54f6(%rip), %rsi      # 0xe541
callq 0xae58
xorl %edi, %edi
callq 0x60a0
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_color.c
// Function: ft_color_ceilling
size_t		ft_color_ceilling(char *line, int e, t_args *args)
{
	int		i;
	int		r;
	int		j;

	r = 0;
	j = 0;
	i = 0;
	if (line[e] == 'C' && (ft_isspace(line[e + 1]) == 1 || line[e + 1] == 0))
	{
		check_twice_color_c(args);
		i = find_i(line, e, 2);
		while (line[e + i + j + 2] != '\0')
		{
			if (line[e + i + j + 2] == ',')
				r++;
			j++;
		}
		if (r != 2)
		{
			put_color(RED, "\nError\n wrong number of argument ceiling color");
			exit(0);
		}
		j = ft_value_color_c(line, (e + i + 2), args);
	}
	return (j - 2);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movslq %esi, %r12
movq $-0x2, %r15
cmpb $0x43, (%rdi,%r12)
jne 0x90e6
movq %rdx, %rbx
movl %esi, %ebp
movq %rdi, %r14
movsbl 0x1(%rdi,%r12), %edi
callq 0xa678
cmpl $0x1, %eax
je 0x9090
cmpb $0x0, 0x1(%r14,%r12)
jne 0x90e6
movq %rbx, %rdi
callq 0x6bd6
movq %r14, %rdi
movl %ebp, %esi
movl $0x2, %edx
callq 0x6ed0
addl %ebp, %eax
movslq %eax, %rcx
leaq (%r14,%rcx), %rdx
addq $0x2, %rdx
xorl %ecx, %ecx
movzbl (%rdx), %esi
cmpl $0x2c, %esi
je 0x90c4
testl %esi, %esi
jne 0x90c6
jmp 0x90cb
incl %ecx
incq %rdx
jmp 0x90b6
cmpl $0x2, %ecx
jne 0x90f2
addl $0x2, %eax
movq %r14, %rdi
movl %eax, %esi
movq %rbx, %rdx
callq 0x8fa9
addl $-0x2, %eax
movslq %eax, %r15
movq %r15, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4f13(%rip), %rdi      # 0xe00c
leaq 0x546d(%rip), %rsi      # 0xe56d
callq 0xae58
xorl %edi, %edi
callq 0x60a0
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_map.c
// Function: set_map
t_map					set_map(t_map *map, int i, int j)
{
	int					e;

	e = 0;
	map->position_y = 0;
	map->position_x = 0;
	map->position_direction = '0';
	map->height_map = i;
	map->width_map = j;
	if (!(map->mapp = (char **)malloc(sizeof(char *) * (i + 1))))
		return (*map);
	while (e <= i)
	{
		map->mapp[e] = ft_strnew(j, 32);
		e++;
	}
	return (*map);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %ecx, %ebp
movl %edx, %r15d
movq %rsi, %r14
movq %rdi, %rbx
movq $0x0, 0x10(%rsi)
movb $0x30, 0x18(%rsi)
movl %edx, 0xc(%rsi)
movl %ecx, 0x8(%rsi)
leal 0x1(%r15), %r12d
movslq %r12d, %rdi
shlq $0x3, %rdi
callq 0x6100
movq %rax, (%r14)
testq %rax, %rax
sete %al
testl %r15d, %r15d
sets %cl
orb %al, %cl
jne 0x917c
movslq %ebp, %r15
movl %r12d, %r12d
xorl %r13d, %r13d
movq %r15, %rdi
movl $0x20, %esi
callq 0xa93c
movq (%r14), %rcx
movq %rax, (%rcx,%r13,8)
incq %r13
cmpq %r13, %r12
jne 0x9160
movq 0x20(%r14), %rax
movq %rax, 0x20(%rbx)
movq (%r14), %rax
movq 0x8(%r14), %rcx
movups 0x10(%r14), %xmm0
movups %xmm0, 0x10(%rbx)
movq %rax, (%rbx)
movq %rcx, 0x8(%rbx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_map.c
// Function: set_funct_map
void					set_funct_map(t_map_funct *funct_map)
{
	size_t				i;

	i = 0;
	while (i < 254)
	{
		funct_map[i] = NULL;
		i++;
	}
	funct_map[0] = (void *)(-1);
	funct_map['0'] = ft_check_borders;
	funct_map['2'] = ft_sprite;
	funct_map['N'] = ft_position_n;
	funct_map['S'] = ft_position_s;
	funct_map['W'] = ft_position_w;
	funct_map['E'] = ft_position_e;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
addq $0x8, %rdi
movl $0x7e8, %edx            # imm = 0x7E8
xorl %esi, %esi
callq 0x6030
movq $-0x1, (%rbx)
leaq -0x27aa(%rip), %rax     # 0x6a25
movq %rax, 0x180(%rbx)
leaq 0x607(%rip), %rax       # 0x97e4
movq %rax, 0x190(%rbx)
leaq 0x32b(%rip), %rax       # 0x9516
movq %rax, 0x270(%rbx)
leaq 0x35d(%rip), %rax       # 0x9556
movq %rax, 0x298(%rbx)
leaq 0x38f(%rip), %rax       # 0x9596
movq %rax, 0x2b8(%rbx)
leaq 0x3c1(%rip), %rax       # 0x95d6
movq %rax, 0x228(%rbx)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_map.c
// Function: ft_check_map
t_map					ft_check_map(t_map *map, int i, int j)
{
	static	t_map_funct	funct_map[255] = {NULL};
	int					x;
	int					y;

	x = 0;
	y = 0;
	if (funct_map[0] == NULL)
		set_funct_map(funct_map);
	map->number_sprite = 0;
	while (x < i + 1)
	{
		while (y < j)
		{
			if (funct_map[(int)map->mapp[x][y]] != NULL)
				funct_map[(int)map->mapp[x][y]](map, x, y);
			y++;
		}
		y = 0;
		x++;
	}
	check_pos(map);
	ft_tab_sprite(map);
	return (*map);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %ecx, 0xc(%rsp)
movl %edx, %r15d
movq %rsi, %r14
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0xe86d(%rip)      # 0x17ab0
jne 0x92b7
leaq 0xe86c(%rip), %rdi      # 0x17ab8
movl $0x7e8, %edx            # imm = 0x7E8
xorl %esi, %esi
callq 0x6030
movq $-0x1, 0xe84d(%rip) # 0x17ab0
leaq -0x2845(%rip), %rax     # 0x6a25
movq %rax, 0xe9bf(%rip)      # 0x17c30
leaq 0x56c(%rip), %rax       # 0x97e4
movq %rax, 0xe9c1(%rip)      # 0x17c40
leaq 0x290(%rip), %rax       # 0x9516
movq %rax, 0xea93(%rip)      # 0x17d20
leaq 0x2c2(%rip), %rax       # 0x9556
movq %rax, 0xeaad(%rip)      # 0x17d48
leaq 0x2f4(%rip), %rax       # 0x9596
movq %rax, 0xeabf(%rip)      # 0x17d68
leaq 0x326(%rip), %rax       # 0x95d6
movq %rax, 0xea21(%rip)      # 0x17cd8
movl $0x0, 0x1c(%r14)
testl %r15d, %r15d
js 0x9310
incl %r15d
movl 0xc(%rsp), %ebx
xorl %r12d, %r12d
leaq 0xe7db(%rip), %rbp      # 0x17ab0
cmpl $0x0, 0xc(%rsp)
jle 0x9308
xorl %r13d, %r13d
movq (%r14), %rax
movq (%rax,%r12,8), %rax
movsbq (%rax,%r13), %rax
movq (%rbp,%rax,8), %rax
testq %rax, %rax
je 0x9300
movq %r14, %rdi
movl %r12d, %esi
movl %r13d, %edx
callq *%rax
incq %r13
cmpq %r13, %rbx
jne 0x92df
incq %r12
cmpq %r15, %r12
jne 0x92d5
movq %r14, %rdi
callq 0x68f0
movq %r14, %rdi
callq 0x97f2
movq 0x20(%r14), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
movups (%r14), %xmm0
movups 0x10(%r14), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_map.c
// Function: read_line
int						read_line(int fd, int count)
{
	int					r;
	char				*line;

	while ((r = get_next_line(fd, &line)) == 1 && count > 1)
	{
		free(line);
		count--;
	}
	free(line);
	count = 0;
	return (count);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
movl %esi, %r14d
movl %edi, %ebx
leaq 0x8(%rsp), %rsi
callq 0xaa4f
cmpl $0x1, %eax
setne %al
cmpl $0x2, %r14d
setl %cl
orb %al, %cl
jne 0x93a0
leaq 0x8(%rsp), %r15
movq 0x8(%rsp), %rdi
callq 0x6170
movl %ebx, %edi
movq %r15, %rsi
callq 0xaa4f
cmpl $0x1, %eax
jne 0x93a0
leal -0x1(%r14), %eax
cmpl $0x2, %r14d
movl %eax, %r14d
ja 0x937a
movq 0x8(%rsp), %rdi
callq 0x6170
xorl %eax, %eax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_map.c
// Function: ft_parse_map
t_map					ft_parse_map(int i, int j, int count, char *path)
{
	t_map				map;
	int					fd;
	char				*line;
	int					r;
	int					e;

	e = 0;
	map = set_map(&map, i, j);
	fd = open(path, O_RDONLY);
	count = read_line(fd, count);
	while ((r = get_next_line(fd, &line) >= 0 && count < i + 1))
	{
		while (line[e] != '\0')
		{
			map.mapp[count][e] = line[e];
			e++;
		}
		e = 0;
		free(line);
		count++;
	}
	free(line);
	close(fd);
	map = full_check(map, i, j);
	return (map);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %r8, %r15
movl %ecx, %r12d
movl %edx, %ecx
movl %esi, %r14d
movq %rdi, %rbx
leaq 0x40(%rsp), %r13
movq %r13, %rdi
movq %rbx, %rsi
movl %r14d, %edx
movl %ecx, 0x3c(%rsp)
callq 0x910c
movq 0x20(%r13), %rax
movq %rax, 0x20(%rbx)
movups (%r13), %xmm0
movups 0x10(%r13), %xmm1
movups %xmm1, 0x10(%rbx)
movups %xmm0, (%rbx)
movq %r15, %rdi
xorl %esi, %esi
xorl %eax, %eax
callq 0x63f0
movl %eax, %r15d
movl %eax, %edi
movl %r12d, %esi
callq 0x934c
leaq 0x30(%rsp), %rsi
movl %r15d, %edi
callq 0xaa4f
orl %r14d, %eax
js 0x947e
movslq %r14d, %r13
xorl %ebp, %ebp
leaq 0x30(%rsp), %r12
movq 0x30(%rsp), %rdi
movb (%rdi), %al
testb %al, %al
je 0x945e
movq (%rbx), %rcx
xorl %edx, %edx
movq (%rcx,%rbp,8), %rsi
movb %al, (%rsi,%rdx)
movq 0x30(%rsp), %rdi
movb 0x1(%rdi,%rdx), %al
incq %rdx
testb %al, %al
jne 0x9447
callq 0x6170
movl %r15d, %edi
movq %r12, %rsi
callq 0xaa4f
testl %eax, %eax
js 0x947e
leaq 0x1(%rbp), %rax
cmpq %r13, %rbp
movq %rax, %rbp
jl 0x9437
movq 0x30(%rsp), %rdi
callq 0x6170
movl %r15d, %edi
callq 0x6040
movq 0x20(%rbx), %rax
movq %rax, 0x20(%rsp)
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x40(%rsp), %r15
movq %r15, %rdi
movl %r14d, %esi
movl 0x3c(%rsp), %edx
callq 0x6918
movq 0x20(%r15), %rax
movq %rax, 0x20(%rbx)
movups (%r15), %xmm0
movups 0x10(%r15), %xmm1
movups %xmm1, 0x10(%rbx)
movups %xmm0, (%rbx)
movq %rbx, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_position.c
// Function: ft_secure
void	ft_secure(t_map *map)
{
	if (map->position_x != 0 || map->position_y != 0 ||
	map->position_direction != '0')
	{
		put_color("\033[31m",
		"\nError\n The beginning position is filled twice !");
		exit(0);
	}
}

// Assembly:
cmpl $0x0, 0x10(%rdi)
jne 0x94fb
cmpl $0x0, 0x14(%rdi)
jne 0x94fb
cmpb $0x30, 0x18(%rdi)
jne 0x94fb
retq
pushq %rax
leaq 0x4b09(%rip), %rdi      # 0xe00c
leaq 0x5092(%rip), %rsi      # 0xe59c
callq 0xae58
xorl %edi, %edi
callq 0x60a0
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_position.c
// Function: ft_position_n
void	ft_position_n(t_map *map, int x, int y)
{
	ft_secure(map);
	map->position_x = x;
	map->position_y = y;
	if (map->mapp[x][y] == 'N')
		map->position_direction = 'N';
	ft_check_borders(map, x, y);
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %edx, %ebx
movl %esi, %ebp
movq %rdi, %r14
callq 0x94e8
movl %ebp, 0x10(%r14)
movl %ebx, 0x14(%r14)
movq (%r14), %rax
movslq %ebp, %rcx
movq (%rax,%rcx,8), %rax
movslq %ebx, %rcx
cmpb $0x4e, (%rax,%rcx)
jne 0x9546
movb $0x4e, 0x18(%r14)
movq %r14, %rdi
movl %ebp, %esi
movl %ebx, %edx
popq %rbx
popq %r14
popq %rbp
jmp 0x6a25
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_position.c
// Function: ft_position_s
void	ft_position_s(t_map *map, int x, int y)
{
	ft_secure(map);
	map->position_x = x;
	map->position_y = y;
	if (map->mapp[x][y] == 'S')
		map->position_direction = 'S';
	ft_check_borders(map, x, y);
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %edx, %ebx
movl %esi, %ebp
movq %rdi, %r14
callq 0x94e8
movl %ebp, 0x10(%r14)
movl %ebx, 0x14(%r14)
movq (%r14), %rax
movslq %ebp, %rcx
movq (%rax,%rcx,8), %rax
movslq %ebx, %rcx
cmpb $0x53, (%rax,%rcx)
jne 0x9586
movb $0x53, 0x18(%r14)
movq %r14, %rdi
movl %ebp, %esi
movl %ebx, %edx
popq %rbx
popq %r14
popq %rbp
jmp 0x6a25
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_position.c
// Function: ft_position_w
void	ft_position_w(t_map *map, int x, int y)
{
	ft_secure(map);
	map->position_x = x;
	map->position_y = y;
	if (map->mapp[x][y] == 'W')
		map->position_direction = 'W';
	ft_check_borders(map, x, y);
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %edx, %ebx
movl %esi, %ebp
movq %rdi, %r14
callq 0x94e8
movl %ebp, 0x10(%r14)
movl %ebx, 0x14(%r14)
movq (%r14), %rax
movslq %ebp, %rcx
movq (%rax,%rcx,8), %rax
movslq %ebx, %rcx
cmpb $0x57, (%rax,%rcx)
jne 0x95c6
movb $0x57, 0x18(%r14)
movq %r14, %rdi
movl %ebp, %esi
movl %ebx, %edx
popq %rbx
popq %r14
popq %rbp
jmp 0x6a25
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_position.c
// Function: ft_position_e
void	ft_position_e(t_map *map, int x, int y)
{
	ft_secure(map);
	map->position_x = x;
	map->position_y = y;
	if (map->mapp[x][y] == 'E')
		map->position_direction = 'E';
	ft_check_borders(map, x, y);
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %edx, %ebx
movl %esi, %ebp
movq %rdi, %r14
callq 0x94e8
movl %ebp, 0x10(%r14)
movl %ebx, 0x14(%r14)
movq (%r14), %rax
movslq %ebp, %rcx
movq (%rax,%rcx,8), %rax
movslq %ebx, %rcx
cmpb $0x45, (%rax,%rcx)
jne 0x9606
movb $0x45, 0x18(%r14)
movq %r14, %rdi
movl %ebp, %esi
movl %ebx, %edx
popq %rbx
popq %r14
popq %rbp
jmp 0x6a25
nop
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_resolution.c
// Function: ft_resolution
size_t	ft_resolution(char *line, int e, t_args *args)
{
	int i;

	i = 0;
	if (line[e] == 'R' && (ft_isspace(line[e + 1]) == 1 || line[e + 1] == 0))
	{
		i += find_i(line, e, 2);
		check_twice_res(args);
		args->reso_x = ft_atoi_test(&line[e + 1]);
		if (ft_isspace(line[e + 1]) == 0)
		{
			put_color("\033[31m", "\nError\n Missing space or arguments");
			exit(0);
		}
		i += ft_count(args->reso_x) + 1;
		args->reso_y = ft_atoi_test(&line[e + i + 1]);
		if (args->reso_y == -1 || args->reso_x == -1)
		{
			put_color(RED, "\nError\n wrong number of argument for resolution");
			exit(0);
		}
	}
	return (i + ft_count(args->reso_y) + 1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movslq %esi, %r13
xorl %ebp, %ebp
cmpb $0x52, (%rdi,%r13)
jne 0x96e3
movl %esi, %r15d
movq %rdi, %r14
addq %rdi, %r13
movsbl 0x1(%r13), %edi
incq %r13
callq 0xa678
cmpl $0x1, %eax
je 0x967a
cmpb $0x0, (%r13)
jne 0x96e3
movq %r14, %rdi
movl %r15d, %esi
movl $0x2, %edx
callq 0x6ed0
movl %eax, %r12d
movq %rbx, %rdi
callq 0x9618
movq %r13, %rdi
callq 0xa70b
movl %eax, 0x8(%rbx)
movsbl (%r13), %edi
callq 0xa678
testl %eax, %eax
je 0x9713
movl 0x8(%rbx), %edi
callq 0xacac
movq %rax, %r13
addl %r12d, %eax
addl %r15d, %eax
incl %eax
cltq
leaq (%r14,%rax), %rdi
incq %rdi
callq 0xa70b
movl %eax, 0xc(%rbx)
cmpl $-0x1, %eax
je 0x9703
cmpl $-0x1, 0x8(%rbx)
je 0x9703
leal (%r12,%r13), %ebp
incl %ebp
movslq %ebp, %r14
movl 0xc(%rbx), %edi
callq 0xacac
addq %r14, %rax
incq %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4902(%rip), %rdi      # 0xe00c
leaq 0x4f03(%rip), %rsi      # 0xe614
jmp 0x9721
leaq 0x48f2(%rip), %rdi      # 0xe00c
leaq 0x4ed0(%rip), %rsi      # 0xe5f1
callq 0xae58
xorl %edi, %edi
callq 0x60a0
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_resolution.c
// Function: check_resolution
t_args	check_resolution(t_args argy, t_mlx_coord mlxco)
{
	mlxco.size_x = malloc(sizeof(int*));
	mlxco.size_y = malloc(sizeof(int*));
	mlx_get_screen_size(mlxco.mlx, mlxco.size_x, mlxco.size_y);
	if (argy.save == 0)
	{
		if (argy.reso_x >= *mlxco.size_x)
		{
			argy.reso_x = *mlxco.size_x;
			put_color("\033[33m", "\nError\n resolution x has been resized");
		}
		if (argy.reso_y >= *mlxco.size_y)
		{
			argy.reso_y = *mlxco.size_y;
			put_color("\033[33m", "\nError\n resolution y has been resized");
		}
	}
	free(mlxco.size_x);
	free(mlxco.size_y);
	return (argy);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x30(%rsp), %r14
movl $0x8, %edi
callq 0x6100
movq %rax, %r15
movl $0x8, %edi
callq 0x6100
movq %rax, %r12
movq 0xb8(%rsp), %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0xd5b0
cmpl $0x0, 0x6c(%r14)
jne 0x97b2
movl (%r15), %eax
cmpl %eax, 0x8(%r14)
jl 0x9791
movl %eax, 0x8(%r14)
leaq 0x4b83(%rip), %rdi      # 0xe308
leaq 0x4eb8(%rip), %rsi      # 0xe644
callq 0xae58
movl (%r12), %eax
cmpl %eax, 0xc(%r14)
jl 0x97b2
movl %eax, 0xc(%r14)
leaq 0x4b62(%rip), %rdi      # 0xe308
leaq 0x4ebd(%rip), %rsi      # 0xe66a
callq 0xae58
movq %r15, %rdi
callq 0x6170
movq %r12, %rdi
callq 0x6170
movl $0x88, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x63e0
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/parse_sprite.c
// Function: ft_tab_sprite
void		ft_tab_sprite(t_map *map)
{
	int		x;
	int		y;
	int		i;

	x = 0;
	y = 0;
	i = 0;
	if (!(map->sprite = malloc(sizeof(t_sprite) * map->number_sprite)))
		return ;
	while (x < map->height_map)
	{
		while (y < map->width_map)
		{
			if (map->mapp[x][y] == '2' && i < map->number_sprite)
			{
				map->sprite[i] = load_sprites(map->sprite[i], x, y);
				i++;
			}
			y++;
		}
		y = 0;
		x++;
	}
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movslq 0x1c(%rdi), %rdi
shlq $0x3, %rdi
callq 0x6100
movq %rax, 0x20(%rbx)
testq %rax, %rax
je 0x9873
movl 0xc(%rbx), %r8d
testl %r8d, %r8d
jle 0x9873
movl 0x8(%rbx), %edx
xorl %eax, %eax
movabsq $0x100000000, %rcx      # imm = 0x100000000
xorl %esi, %esi
xorl %edi, %edi
testl %edx, %edx
jle 0x9865
xorl %r8d, %r8d
movq (%rbx), %r9
movq (%r9,%rsi,8), %r9
cmpb $0x32, (%r9,%r8)
jne 0x9856
cmpl 0x1c(%rbx), %edi
jge 0x9856
movq 0x20(%rbx), %rdx
movslq %edi, %r9
leaq (%rax,%r8), %r10
movq %r10, (%rdx,%r9,8)
incl %edi
movl 0x8(%rbx), %edx
incq %r8
movslq %edx, %r9
cmpq %r9, %r8
jl 0x982f
movl 0xc(%rbx), %r8d
incq %rsi
movslq %r8d, %r9
addq %rcx, %rax
cmpq %r9, %rsi
jl 0x9828
popq %rbx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/path_sprite.c
// Function: free_text
void		free_text(t_args *args, char *line)
{
	if (args->text_east != NULL)
		free(args->text_east);
	if (args->text_west != NULL)
		free(args->text_west);
	if (args->text_south != NULL)
		free(args->text_south);
	if (args->text_north != NULL)
		free(args->text_north);
	free(line);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movq 0x30(%rdi), %rdi
testq %rdi, %rdi
je 0x9890
callq 0x6170
movq 0x28(%r14), %rdi
testq %rdi, %rdi
je 0x989e
callq 0x6170
movq 0x20(%r14), %rdi
testq %rdi, %rdi
je 0x98ac
callq 0x6170
movq 0x18(%r14), %rdi
testq %rdi, %rdi
je 0x98ba
callq 0x6170
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x6170
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/path_sprite.c
// Function: ft_check_path_sprite
int			ft_check_path_sprite(char *line, int e, char *path, t_args *args)
{
	int		i;

	i = 0;
	if (line[e] != 'm' && line[e - 1] != 'p' &&
		line[e - 2] != 'x' && line[e - 3] != '.')
	{
		put_color("\033[31m",
		"\nError\n wrong format for sprite check your path");
		free_text(args, line);
		exit(0);
	}
	e = 0;
	line[0] = '1';
	if ((i = open(path, O_RDONLY)) == -1)
	{
		put_color("\033[31m",
		"\nError\n file can't open for sprite check your path");
		free_text(args, line);
		exit(0);
	}
	else
		close(i);
	return (1);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rcx, %rbx
movq %rdi, %r14
movslq %esi, %rax
cmpb $0x6d, (%rdi,%rax)
je 0x98f4
cmpb $0x70, -0x1(%r14,%rax)
je 0x98f4
cmpb $0x78, -0x2(%r14,%rax)
je 0x98f4
cmpb $0x2e, -0x3(%r14,%rax)
jne 0x9942
movb $0x31, (%r14)
movq %rdx, %rdi
xorl %esi, %esi
xorl %eax, %eax
callq 0x63f0
cmpl $-0x1, %eax
je 0x991d
movl %eax, %edi
callq 0x6040
movl $0x1, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
leaq 0x46e8(%rip), %rdi      # 0xe00c
leaq 0x4d95(%rip), %rsi      # 0xe6c0
callq 0xae58
movq %rbx, %rdi
movq %r14, %rsi
callq 0x9878
xorl %edi, %edi
callq 0x60a0
leaq 0x46c3(%rip), %rdi      # 0xe00c
leaq 0x4d40(%rip), %rsi      # 0xe690
jmp 0x992b
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/path_sprite.c
// Function: ft_s_case
size_t		ft_s_case(char *line, int e, t_args *args)
{
	size_t	i;

	i = 0;
	if (line[e] == 'S' && line[e + 1] == 'O')
		i = ft_texture_south(line, e, args);
	else if (line[e] == 'S' && (ft_isspace(line[e + 1]) == 1 ||
	line[e + 1] == 0))
		i = ft_texture_sprite(line, e, args);
	return (i);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movslq %esi, %r15
cmpb $0x53, (%rdi,%r15)
jne 0x99a0
movq %rdx, %rbx
movl %esi, %ebp
movq %rdi, %r14
movb 0x1(%rdi,%r15), %al
cmpb $0x4f, %al
jne 0x998b
movq %r14, %rdi
movl %ebp, %esi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x9d7b
movsbl %al, %edi
callq 0xa678
cmpl $0x1, %eax
je 0x99ad
cmpb $0x0, 0x1(%r14,%r15)
je 0x99ad
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %r14, %rdi
movl %ebp, %esi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x99c4
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/path_sprite.c
// Function: ft_texture_sprite
size_t		ft_texture_sprite(char *line, int e, t_args *args)
{
	int		i;
	int		j;
	char	*path;

	i = 0;
	j = 0;
	if (line[e] == 'S' && (ft_isspace(line[e + 1]) == 1 || line[e + 1] == 0))
	{
		i = check_twice_sprite(args, line, e);
		j = find_j(line, (e + i));
		if (!(path = malloc(sizeof(char) * (j + 1))))
			return (0);
		path = put_path(e + i + 2, path, line);
		if (ft_check_path_sprite(line, (e + i + j + 1), path, args) == 1)
		{
			args->text_sprite = path;
			args->error_sprite = 1;
		}
		else
		{
			args->error_sprite = 0;
			free_text(args, line);
		}
	}
	return (e + i + j + 1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %esi, %ebx
movslq %esi, %r14
xorl %r15d, %r15d
cmpb $0x53, (%rdi,%r14)
jne 0x9a73
movq %rdx, %rbp
movq %rdi, %r12
movsbl 0x1(%rdi,%r14), %edi
callq 0xa678
cmpl $0x1, %eax
je 0x9a0d
cmpb $0x0, 0x1(%r12,%r14)
movl $0x0, %r13d
jne 0x9aaa
movq %rbp, 0x10(%rsp)
movq %rbp, %rdi
movq %r12, %rsi
movl %ebx, %edx
callq 0x6b78
movl %eax, %r15d
leal (%r15,%rbx), %ebp
movq %r12, %rdi
movl %ebp, %esi
callq 0x6eb4
movl %eax, %r13d
leal 0x1(%r13), %eax
movl %eax, 0xc(%rsp)
movslq %eax, %rdi
callq 0x6100
testq %rax, %rax
je 0x9a78
movq %rax, %r14
movslq %ebp, %rcx
movb 0x2(%r12,%rcx), %al
testb %al, %al
je 0x9a7c
leaq (%rcx,%r12), %rdx
addq $0x3, %rdx
xorl %ecx, %ecx
movb %al, (%r14,%rcx)
movb (%rdx,%rcx), %al
incq %rcx
testb %al, %al
jne 0x9a61
movl %ecx, %eax
jmp 0x9a7e
xorl %r13d, %r13d
jmp 0x9aaa
xorl %eax, %eax
jmp 0x9ab5
xorl %eax, %eax
movb $0x0, (%r14,%rax)
movl 0xc(%rsp), %esi
addl %ebp, %esi
movq %r12, %rdi
movq %r14, %rdx
movq 0x10(%rsp), %r12
movq %r12, %rcx
callq 0x98c9
movq %r14, 0x38(%r12)
movl $0x1, 0x50(%r12)
addl %r15d, %ebx
leal (%rbx,%r13), %eax
incl %eax
cltq
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/path_sprite.c
// Function: put_path
char		*put_path(int i, char *path, char *line)
{
	int		j;

	j = 0;
	j = 0;
	while (line[i + j] != '\0')
	{
		path[j] = line[i + j];
		j++;
	}
	path[j] = '\0';
	return (path);
}

// Assembly:
movq %rsi, %rax
movslq %edi, %rsi
movb (%rdx,%rsi), %cl
testb %cl, %cl
je 0x9aea
addq %rdx, %rsi
incq %rsi
xorl %edx, %edx
movb %cl, (%rax,%rdx)
movb (%rsi,%rdx), %cl
incq %rdx
testb %cl, %cl
jne 0x9ad9
movl %edx, %ecx
jmp 0x9aec
xorl %ecx, %ecx
movb $0x0, (%rax,%rcx)
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/path_texture.c
// Function: ft_check_path_text
int			ft_check_path_text(char *line, int e, char *path)
{
	int		i;

	i = 0;
	if (line[e] != 'm' && line[e - 1] != 'p' &&
		line[e - 2] != 'x' && line[e - 3] != '.')
	{
		put_color("\033[33m",
		"\nError\n wrong format for texture");
		exit(0);
	}
	e = 0;
	line[0] = '1';
	if ((i = open(path, O_RDONLY)) == -1)
	{
		put_color("\033[33m",
		"\nError\n texture can't be open");
		exit(0);
	}
	else
		close(i);
	return (1);
}

// Assembly:
pushq %rax
movslq %esi, %rax
cmpb $0x6d, (%rdi,%rax)
je 0x9b13
cmpb $0x70, -0x1(%rdi,%rax)
je 0x9b13
cmpb $0x78, -0x2(%rdi,%rax)
je 0x9b13
cmpb $0x2e, -0x3(%rdi,%rax)
jne 0x9b4f
movb $0x31, (%rdi)
movq %rdx, %rdi
xorl %esi, %esi
xorl %eax, %eax
callq 0x63f0
cmpl $-0x1, %eax
je 0x9b35
movl %eax, %edi
callq 0x6040
movl $0x1, %eax
popq %rcx
retq
leaq 0x47cc(%rip), %rdi      # 0xe308
leaq 0x4bd1(%rip), %rsi      # 0xe714
callq 0xae58
xorl %edi, %edi
callq 0x60a0
leaq 0x47b2(%rip), %rdi      # 0xe308
leaq 0x4b96(%rip), %rsi      # 0xe6f3
jmp 0x9b43
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/path_texture.c
// Function: ft_texture_north
size_t		ft_texture_north(char *line, int e, t_args *args)
{
	int		i;
	int		j;
	char	*path;

	i = 0;
	j = 0;
	if (line[e] == 'N' && line[e + 1] == 'O')
	{
		i = check_twice_north(args, line, e);
		j = find_j(line, (e + i));
		if (!(path = malloc(sizeof(char) * (j + 1))))
			return (0);
		path = put_path(e + i + 2, path, line);
		if (ft_check_path_text(line, (e + i + j + 1), path) == 1)
		{
			args->text_north = path;
			args->error_north = 1;
		}
		else
		{
			args->error_north = 0;
			free(path);
		}
	}
	return (e + i + j + 1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %esi, %ebx
movslq %esi, %rax
xorl %r15d, %r15d
cmpb $0x4e, (%rdi,%rax)
jne 0x9bf2
movq %rdi, %r12
cmpb $0x4f, 0x1(%rdi,%rax)
movl $0x0, %r13d
jne 0x9bf5
movq %rdx, %r14
movq %rdx, %rdi
movq %r12, %rsi
movl %ebx, %edx
callq 0x6ab8
movl %eax, %r15d
leal (%r15,%rbx), %esi
movq %r12, %rdi
movq %rsi, (%rsp)
callq 0x6eb4
movl %eax, %r13d
leal 0x1(%r13), %ebp
movslq %ebp, %rdi
callq 0x6100
testq %rax, %rax
je 0x9c0f
movq (%rsp), %rcx
leal 0x2(%rcx), %edi
movq %rax, %rsi
movq %r12, %rdx
callq 0x9ac4
addl (%rsp), %ebp
movq %r12, %rdi
movl %ebp, %esi
movq %rax, %r12
movq %rax, %rdx
callq 0x9af4
movq %r12, 0x18(%r14)
movl $0x1, 0x40(%r14)
jmp 0x9bf5
xorl %r13d, %r13d
addl %r15d, %ebx
leal (%rbx,%r13), %eax
incl %eax
cltq
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %eax, %eax
jmp 0x9c00
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/path_texture.c
// Function: ft_texture_west
size_t		ft_texture_west(char *line, int e, t_args *args)
{
	int		i;
	int		j;
	char	*path;

	i = 0;
	j = 0;
	if (line[e] == 'W' && line[e + 1] == 'E')
	{
		i = check_twice_west(args, line, e);
		j = find_j(line, (e + i));
		if (!(path = malloc(sizeof(char) * (j + 1))))
			return (0);
		path = put_path(e + i + 2, path, line);
		if (ft_check_path_text(line, (e + i + j + 1), path) == 1)
		{
			args->text_west = path;
			args->error_west = 1;
		}
		else
		{
			args->error_west = 0;
			free(path);
		}
	}
	return (e + i + j + 1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %esi, %ebx
movslq %esi, %rax
xorl %r15d, %r15d
cmpb $0x57, (%rdi,%rax)
jne 0x9ca6
movq %rdi, %r12
cmpb $0x45, 0x1(%rdi,%rax)
movl $0x0, %r13d
jne 0x9ca9
movq %rdx, %r14
movq %rdx, %rdi
movq %r12, %rsi
movl %ebx, %edx
callq 0x6b48
movl %eax, %r15d
leal (%r15,%rbx), %esi
movq %r12, %rdi
movq %rsi, (%rsp)
callq 0x6eb4
movl %eax, %r13d
leal 0x1(%r13), %ebp
movslq %ebp, %rdi
callq 0x6100
testq %rax, %rax
je 0x9cc3
movq (%rsp), %rcx
leal 0x2(%rcx), %edi
movq %rax, %rsi
movq %r12, %rdx
callq 0x9ac4
addl (%rsp), %ebp
movq %r12, %rdi
movl %ebp, %esi
movq %rax, %r12
movq %rax, %rdx
callq 0x9af4
movq %r12, 0x28(%r14)
movl $0x1, 0x48(%r14)
jmp 0x9ca9
xorl %r13d, %r13d
addl %r15d, %ebx
leal (%rbx,%r13), %eax
incl %eax
cltq
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %eax, %eax
jmp 0x9cb4
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/path_texture.c
// Function: ft_texture_east
size_t		ft_texture_east(char *line, int e, t_args *args)
{
	int		i;
	int		j;
	char	*path;

	i = 0;
	j = 0;
	if (line[e] == 'E' && line[e + 1] == 'A')
	{
		i = check_twice_east(args, line, e);
		j = find_j(line, (e + i));
		if (!(path = malloc(sizeof(char) * (j + 1))))
			return (0);
		path = put_path(e + i + 2, path, line);
		if (ft_check_path_text(line, (e + i + j + 1), path) == 1)
		{
			args->text_east = path;
			args->error_east = 1;
		}
		else
		{
			args->error_east = 0;
			free(path);
		}
	}
	return (e + i + j + 1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %esi, %ebx
movslq %esi, %rax
xorl %r15d, %r15d
cmpb $0x45, (%rdi,%rax)
jne 0x9d5a
movq %rdi, %r12
cmpb $0x41, 0x1(%rdi,%rax)
movl $0x0, %r13d
jne 0x9d5d
movq %rdx, %r14
movq %rdx, %rdi
movq %r12, %rsi
movl %ebx, %edx
callq 0x6b18
movl %eax, %r15d
leal (%r15,%rbx), %esi
movq %r12, %rdi
movq %rsi, (%rsp)
callq 0x6eb4
movl %eax, %r13d
leal 0x1(%r13), %ebp
movslq %ebp, %rdi
callq 0x6100
testq %rax, %rax
je 0x9d77
movq (%rsp), %rcx
leal 0x2(%rcx), %edi
movq %rax, %rsi
movq %r12, %rdx
callq 0x9ac4
addl (%rsp), %ebp
movq %r12, %rdi
movl %ebp, %esi
movq %rax, %r12
movq %rax, %rdx
callq 0x9af4
movq %r12, 0x30(%r14)
movl $0x1, 0x4c(%r14)
jmp 0x9d5d
xorl %r13d, %r13d
addl %r15d, %ebx
leal (%rbx,%r13), %eax
incl %eax
cltq
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %eax, %eax
jmp 0x9d68
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/path_texture.c
// Function: ft_texture_south
size_t		ft_texture_south(char *line, int e, t_args *args)
{
	int		i;
	int		j;
	char	*path;

	j = 0;
	i = 0;
	if (line[e] == 'S' && line[e + 1] == 'O')
	{
		i = check_twice_south(args, line, e);
		j = find_j(line, (e + i));
		if (!(path = malloc(sizeof(char) * (j + 1))))
			return (0);
		path = put_path(e + i + 2, path, line);
		if (ft_check_path_text(line, (e + i + j + 1), path) == 1)
		{
			args->text_south = path;
			args->error_south = 1;
		}
		else
		{
			args->error_south = 0;
			free(path);
		}
	}
	return (e + i + j + 1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %esi, %ebx
movslq %esi, %rax
xorl %r15d, %r15d
cmpb $0x53, (%rdi,%rax)
jne 0x9e0e
movq %rdi, %r12
cmpb $0x4f, 0x1(%rdi,%rax)
movl $0x0, %r13d
jne 0x9e11
movq %rdx, %r14
movq %rdx, %rdi
movq %r12, %rsi
movl %ebx, %edx
callq 0x6ae8
movl %eax, %r15d
leal (%r15,%rbx), %esi
movq %r12, %rdi
movq %rsi, (%rsp)
callq 0x6eb4
movl %eax, %r13d
leal 0x1(%r13), %ebp
movslq %ebp, %rdi
callq 0x6100
testq %rax, %rax
je 0x9e2b
movq (%rsp), %rcx
leal 0x2(%rcx), %edi
movq %rax, %rsi
movq %r12, %rdx
callq 0x9ac4
addl (%rsp), %ebp
movq %r12, %rdi
movl %ebp, %esi
movq %rax, %r12
movq %rax, %rdx
callq 0x9af4
movq %r12, 0x20(%r14)
movl $0x1, 0x44(%r14)
jmp 0x9e11
xorl %r13d, %r13d
addl %r15d, %ebx
leal (%rbx,%r13), %eax
incl %eax
cltq
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %eax, %eax
jmp 0x9e1c
nop
// File: /workspace/github_c_makefile_star2_O3/florianne1212[P]Cub3D_42/srcs/rotation.c
// Function: rotate_right
void	rotate_right(t_img_coord *co)
{
	double	old_dirx;
	double	old_planex;
	double	rotspeed;

	rotspeed = 0.01;
	old_dirx = co->dirx;
	old_planex = co->planex;
	co->dirx = co->dirx * cos(rotspeed) - co->diry * sin(rotspeed);
	co->diry = old_dirx * sin(rotspeed) + co->diry * cos(rotspeed);
	co->planex = co->planex * cos(rotspeed) - co->planey * sin(rotspeed);
	co->planey = old_planex * sin(rotspeed) + co->planey * cos(rotspeed);
	co->x = 0;
}

// Assembly:
movsd 0x10(%rdi), %xmm0
movsd 0x18(%rdi), %xmm1
movsd 0x20(%rdi), %xmm2
movsd 0x28(%rdi), %xmm3
unpcklpd %xmm1, %xmm1            # xmm1 = xmm1[0,0]
movapd 0x48f0(%rip), %xmm4     # 0xe740
mulpd %xmm4, %xmm1
unpcklpd %xmm0, %xmm0            # xmm0 = xmm0[0,0]
movapd 0x48f0(%rip), %xmm5     # 0xe750
mulpd %xmm5, %xmm0
addpd %xmm1, %xmm0
movupd %xmm0, 0x10(%rdi)
unpcklpd %xmm3, %xmm3            # xmm3 = xmm3[0,0]
mulpd %xmm4, %xmm3
unpcklpd %xmm2, %xmm2            # xmm2 = xmm2[0,0]
mulpd %xmm5, %xmm2
addpd %xmm3, %xmm2
movupd %xmm2, 0x20(%rdi)
movl $0x0, 0xa4(%rdi)
retq