// File: /workspace/github_c_makefile_star2_O0/ffoissey[P]filler_42/srcs/process.c
// Function: pos_is_ok
static unsigned char	pos_is_ok(t_game *game, t_point *pos,
							t_point *p, int *contact)
{
	if (pos->x + p->x < 0 || pos->y + p->y < 0
			|| pos->x + p->x >= game->board.size.x
			|| pos->y + p->y >= game->board.size.y)
	{
		if (game->piece.mx[p->x][p->y] == E_FULL)
			return (FALSE);
	}
	else if ((game->board.mx[pos->x + p->x][pos->y + p->y] == E_ADV
				|| game->board.mx[pos->x + p->x][pos->y + p->y] == E_LAST_ADV)
			&& game->piece.mx[p->x][p->y] == E_FULL)
		return (FALSE);
	else if (*contact > 1)
		return (FALSE);
	else if (((game->board.mx[pos->x + p->x][pos->y + p->y] == E_MINE)
			|| (game->board.mx[pos->x + p->x][pos->y + p->y] == E_LAST_MINE))
			&& game->piece.mx[p->x][p->y] == E_FULL)
	{
		game->contact.x = pos->x + p->x;
		game->contact.y = pos->y + p->y;
		(*contact)++;
	}
	return (TRUE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
movq -0x20(%rbp), %rcx
addl (%rcx), %eax
cmpl $0x0, %eax
jl 0x1f54
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x20(%rbp), %rcx
addl 0x4(%rcx), %eax
cmpl $0x0, %eax
jl 0x1f54
movq -0x18(%rbp), %rax
movl (%rax), %eax
movq -0x20(%rbp), %rcx
addl (%rcx), %eax
movq -0x10(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x1f54
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x20(%rbp), %rcx
addl 0x4(%rcx), %eax
movq -0x10(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jl 0x1f83
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x20(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rax
movq -0x20(%rbp), %rcx
movslq 0x4(%rcx), %rcx
cmpl $0x5, (%rax,%rcx,4)
jne 0x1f7e
movb $0x0, -0x1(%rbp)
jmp 0x20eb
jmp 0x20e7
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
movl (%rcx), %ecx
movq -0x20(%rbp), %rdx
addl (%rdx), %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq -0x18(%rbp), %rcx
movl 0x4(%rcx), %ecx
movq -0x20(%rbp), %rdx
addl 0x4(%rdx), %ecx
movslq %ecx, %rcx
cmpl $0x1, (%rax,%rcx,4)
je 0x1fe7
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
movl (%rcx), %ecx
movq -0x20(%rbp), %rdx
addl (%rdx), %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq -0x18(%rbp), %rcx
movl 0x4(%rcx), %ecx
movq -0x20(%rbp), %rdx
addl 0x4(%rdx), %ecx
movslq %ecx, %rcx
cmpl $0x2, (%rax,%rcx,4)
jne 0x2011
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x20(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rax
movq -0x20(%rbp), %rcx
movslq 0x4(%rcx), %rcx
cmpl $0x5, (%rax,%rcx,4)
jne 0x2011
movb $0x0, -0x1(%rbp)
jmp 0x20eb
movq -0x28(%rbp), %rax
cmpl $0x1, (%rax)
jle 0x2023
movb $0x0, -0x1(%rbp)
jmp 0x20eb
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
movl (%rcx), %ecx
movq -0x20(%rbp), %rdx
addl (%rdx), %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq -0x18(%rbp), %rcx
movl 0x4(%rcx), %ecx
movq -0x20(%rbp), %rdx
addl 0x4(%rdx), %ecx
movslq %ecx, %rcx
cmpl $0x3, (%rax,%rcx,4)
je 0x2087
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
movl (%rcx), %ecx
movq -0x20(%rbp), %rdx
addl (%rdx), %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq -0x18(%rbp), %rcx
movl 0x4(%rcx), %ecx
movq -0x20(%rbp), %rdx
addl 0x4(%rdx), %ecx
movslq %ecx, %rcx
cmpl $0x4, (%rax,%rcx,4)
jne 0x20e1
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x20(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rax
movq -0x20(%rbp), %rcx
movslq 0x4(%rcx), %rcx
cmpl $0x5, (%rax,%rcx,4)
jne 0x20e1
movq -0x18(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
addl (%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x8c(%rax)
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x20(%rbp), %rax
addl 0x4(%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x90(%rax)
movq -0x28(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x20e3
jmp 0x20e5
jmp 0x20e7
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
popq %rbp
retq