// File: /workspace/github_c_makefile_star2_O0/cbouilla[P]AES-attacks-finder/Solver.c
// Function: TimeForOne
int TimeForOne(Solver B) // Renvoi la complexité pour avoir la première solution (PROBABLEMENT FAUSSE)
{
	//if (B->type==0) return min(1-B->sortie,B->temps);
	if (B->type==0) return (B->sortie >= 0 ? 0 : 1);
	if (B->sortie<=0) return B->temps;
	if (B->type==2) return max(TimeForOne(B->fils2),TimeForOne(B->fils1));
	int t1=TimeForOne(B->fils1);
	int t2=B->fils2->temps;
	return min(max(t2,t1+max(B->fils1->sortie-B->sortie,0)),B->temps);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movsbl 0x18(%rax), %eax
cmpl $0x0, %eax
jne 0x9fe5
movq -0x10(%rbp), %rax
movl 0x14(%rax), %edx
movl $0x1, %eax
xorl %ecx, %ecx
cmpl $0x0, %edx
cmovgel %ecx, %eax
movl %eax, -0x4(%rbp)
jmp 0xa1e0
movq -0x10(%rbp), %rax
cmpl $0x0, 0x14(%rax)
jg 0x9ffe
movq -0x10(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0xa1e0
movq -0x10(%rbp), %rax
movsbl 0x18(%rax), %eax
cmpl $0x2, %eax
jne 0xa05e
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x9fb0
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x9fb0
movl %eax, %ecx
movl -0x1c(%rbp), %eax
cmpl %ecx, %eax
jle 0xa043
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x9fb0
movl %eax, -0x20(%rbp)
jmp 0xa053
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x9fb0
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0xa1e0
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x9fb0
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movl 0xc(%rax), %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x24(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x14(%rax), %eax
movq -0x10(%rbp), %rcx
subl 0x14(%rcx), %eax
cmpl $0x0, %eax
jle 0xa0b6
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x14(%rax), %eax
movq -0x10(%rbp), %rcx
subl 0x14(%rcx), %eax
movl %eax, -0x2c(%rbp)
jmp 0xa0bd
xorl %eax, %eax
movl %eax, -0x2c(%rbp)
jmp 0xa0bd
movl -0x28(%rbp), %eax
movl -0x24(%rbp), %ecx
movl -0x2c(%rbp), %edx
addl %edx, %ecx
cmpl %ecx, %eax
jle 0xa0d4
movl -0x18(%rbp), %eax
movl %eax, -0x30(%rbp)
jmp 0xa11a
movl -0x14(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x14(%rax), %eax
movq -0x10(%rbp), %rcx
subl 0x14(%rcx), %eax
cmpl $0x0, %eax
jle 0xa108
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x14(%rax), %eax
movq -0x10(%rbp), %rcx
subl 0x14(%rcx), %eax
movl %eax, -0x38(%rbp)
jmp 0xa10f
xorl %eax, %eax
movl %eax, -0x38(%rbp)
jmp 0xa10f
movl -0x34(%rbp), %eax
movl -0x38(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jge 0xa1d0
movl -0x18(%rbp), %eax
movl %eax, -0x40(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x14(%rax), %eax
movq -0x10(%rbp), %rcx
subl 0x14(%rcx), %eax
cmpl $0x0, %eax
jle 0xa164
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x14(%rax), %eax
movq -0x10(%rbp), %rcx
subl 0x14(%rcx), %eax
movl %eax, -0x44(%rbp)
jmp 0xa16b
xorl %eax, %eax
movl %eax, -0x44(%rbp)
jmp 0xa16b
movl -0x40(%rbp), %eax
movl -0x3c(%rbp), %ecx
movl -0x44(%rbp), %edx
addl %edx, %ecx
cmpl %ecx, %eax
jle 0xa182
movl -0x18(%rbp), %eax
movl %eax, -0x48(%rbp)
jmp 0xa1c8
movl -0x14(%rbp), %eax
movl %eax, -0x4c(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x14(%rax), %eax
movq -0x10(%rbp), %rcx
subl 0x14(%rcx), %eax
cmpl $0x0, %eax
jle 0xa1b6
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x14(%rax), %eax
movq -0x10(%rbp), %rcx
subl 0x14(%rcx), %eax
movl %eax, -0x50(%rbp)
jmp 0xa1bd
xorl %eax, %eax
movl %eax, -0x50(%rbp)
jmp 0xa1bd
movl -0x4c(%rbp), %eax
movl -0x50(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %eax
movl %eax, -0x54(%rbp)
jmp 0xa1da
movq -0x10(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x54(%rbp)
movl -0x54(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax)