// File: /workspace/github_c_makefile_star2_O2/ffoissey[P]filler_42/srcs/process.c
// Function: ft_process
void					ft_process(t_game *game)
{
	static	t_strategy	strategy[] = {angle_target_mode, angle_opmine_mode,
										angle_opadv_mode, attack_mode,
										glue_mode};

	ft_bzero(&game->to_play, sizeof(t_point));
	game->nearest_adv = nearest(game);
	chose_better_angle(game);
	select_strategy(game);
	find_coord(game, strategy[game->mode]);
	game->last_mine = game->contact;
	ft_bzero(&game->last_adv, sizeof(t_point));
	ft_bzero(&game->good_contact, sizeof(t_point));
	ft_bzero(&game->contact, sizeof(t_point));
	game->turn++;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
addq $0x9c, %rdi
pushq $0x8
popq %rsi
movq %rdi, 0x18(%rsp)
callq 0x2698
movq %rbx, %rdi
callq 0x24a8
movq %rax, 0x40(%rbx)
movq %rbx, %rdi
callq 0x2284
movq %rbx, %rdi
callq 0x1fae
movl 0x2c(%rbx), %eax
leaq 0x95d9(%rip), %rcx      # 0xadd0
movq (%rcx,%rax,8), %rax
movq %rax, 0x20(%rsp)
movl 0x18(%rbx), %ecx
movl 0x1c(%rbx), %eax
movl %ecx, %r15d
notl %r15d
movl %eax, %edx
addl 0x8(%rbx), %ecx
movl %ecx, 0x4(%rsp)
notl %edx
movl %edx, (%rsp)
movl 0xc(%rbx), %r13d
addl %eax, %r13d
leaq 0x8c(%rbx), %rcx
movq %rcx, 0x10(%rsp)
leaq 0x94(%rbx), %rcx
movq %rcx, 0x8(%rsp)
negl %eax
cltq
movq %rax, 0x28(%rsp)
xorl %r12d, %r12d
incl %r15d
cmpl 0x4(%rsp), %r15d
jge 0x1986
movl %r15d, %eax
movq %rax, 0x30(%rsp)
movq 0x28(%rsp), %r14
movl (%rsp), %eax
movl %eax, %ebp
incl %ebp
cmpl %r13d, %ebp
jge 0x1845
movl 0x18(%rbx), %eax
xorl %ecx, %ecx
testl %eax, %eax
cmovlel %ecx, %eax
xorl %edx, %edx
cmpq %rax, %rcx
je 0x1937
movl 0x1c(%rbx), %esi
testl %esi, %esi
cmovlel %r12d, %esi
leal (%r15,%rcx), %edi
xorl %r8d, %r8d
cmpq %r8, %rsi
je 0x192f
testl %edi, %edi
js 0x18e8
leaq (%r14,%r8), %r9
testl %r9d, %r9d
js 0x18e8
cmpl 0x8(%rbx), %edi
jge 0x18e8
cmpl 0xc(%rbx), %r9d
jge 0x18e8
movq 0x10(%rbx), %r10
movq (%r10,%rdi,8), %r10
movl %r9d, %r11d
movl (%r10,%r11,4), %r10d
leal -0x1(%r10), %r11d
cmpl $0x1, %r11d
ja 0x1900
movq 0x20(%rbx), %r9
movq (%r9,%rcx,8), %r9
cmpl $0x5, (%r9,%r8,4)
je 0x197e
cmpl $0x1, %edx
jle 0x18fb
jmp 0x197e
movq 0x20(%rbx), %r9
movq (%r9,%rcx,8), %r9
cmpl $0x5, (%r9,%r8,4)
je 0x197e
incq %r8
jmp 0x1891
cmpl $0x1, %edx
jg 0x197e
addl $-0x3, %r10d
cmpl $0x1, %r10d
ja 0x18fb
movq 0x20(%rbx), %r10
movq (%r10,%rcx,8), %r10
cmpl $0x5, (%r10,%r8,4)
jne 0x18fb
movl %edi, 0x8c(%rbx)
movl %r9d, 0x90(%rbx)
incl %edx
jmp 0x18fb
incq %rcx
jmp 0x1878
cmpl $0x1, %edx
jne 0x197e
movq 0x18(%rsp), %rax
cmpl $0x0, (%rax)
jne 0x194f
cmpl $0x0, 0xa0(%rbx)
je 0x195a
movq %rbx, %rdi
callq *0x20(%rsp)
cmpb $0x1, %al
jne 0x197e
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rcx
movq %rax, (%rcx)
movq %rbp, %rax
shlq $0x20, %rax
addq 0x30(%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rax, (%rcx)
incq %r14
jmp 0x1865
movq 0x8c(%rbx), %rax
movq %rax, 0x48(%rbx)
leaq 0x38(%rbx), %rdi
pushq $0x8
popq %r14
movq %r14, %rsi
callq 0x2698
movq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x2698
movq 0x10(%rsp), %rdi
movq %r14, %rsi
callq 0x2698
incl 0xa4(%rbx)
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq