// File: /workspace/github_c_makefile_star2_O0/cbouilla[P]AES-attacks-finder/Solver.c
// Function: charge_solver
Solver charge_solver(FILE *out, string_list_t *variable_names) // charge une solver à partir d'un xml
{
	Solver B=NewSolver();
	unsigned char c = fgetc(out);
	while (c!='\n') c = fgetc(out);
	while (c!='>') c = fgetc(out);
	fscanf(out,"%d",&B->temps);
	while (c!='\n') c = fgetc(out);
	while (c!='>') c = fgetc(out);
	fscanf(out,"%d",&B->memoire);
	while (c!='\n') c = fgetc(out);
	while (c!='>') c = fgetc(out);
	fscanf(out,"%d",&B->sortie);
	while (c!='\n') c = fgetc(out);
	while (c!='>') c = fgetc(out);

	{
		int type;
		fscanf(out,"%d",&type);
		B->type=type;
	}
	
	while (c!='\n') c = fgetc(out);
	while (c!='>') c = fgetc(out);
	B->Nvar=0;
	B->var=NULL;
	c = fgetc(out);
	while (c!='s')
	{
		char s[80];
		while (c!='>') c = fgetc(out);
		int pos=0;
		c = fgetc(out);
		while (c!='<')
		{
			s[pos++]=c;
			c = fgetc(out);
		}
		s[pos]='\0';
		while (c!='>') c = fgetc(out);
		c = fgetc(out);
		int i = find_string(variable_names,s);
		if (i==-1)
		{
			printf("le système d'équations ne correspond pas!!");
			getchar();
		}
		
		int *X=UnionListesTriees(&i,1,B->var,B->Nvar,&B->Nvar);
		free(B->var);
		B->var=X;
		while (c!='>' && c!='s') c = fgetc(out);
	}
	//B->parents=1;
	while (c!='\n') c = fgetc(out);
	c = fgetc(out);
	if (B->type!=0)
	{
		B->fils1=charge_solver(out,variable_names);
		B->fils2=charge_solver(out,variable_names);
	}
	else
	{
		B->fils1=NULL;
		B->fils2=NULL;
	}
	while (c!='\n') c = fgetc(out);
	return B;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
callq 0x9280
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0xa, %eax
je 0x94bf
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x94a8
jmp 0x94c1
movzbl -0x19(%rbp), %eax
cmpl $0x3e, %eax
je 0x94d8
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x94c1
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0xc, %rdx
leaq 0x2f870(%rip), %rsi     # 0x38d5b
movb $0x0, %al
callq 0x2080
movzbl -0x19(%rbp), %eax
cmpl $0xa, %eax
je 0x9509
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x94f2
jmp 0x950b
movzbl -0x19(%rbp), %eax
cmpl $0x3e, %eax
je 0x9522
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x950b
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0x10, %rdx
leaq 0x2f826(%rip), %rsi     # 0x38d5b
movb $0x0, %al
callq 0x2080
movzbl -0x19(%rbp), %eax
cmpl $0xa, %eax
je 0x9553
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x953c
jmp 0x9555
movzbl -0x19(%rbp), %eax
cmpl $0x3e, %eax
je 0x956c
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x9555
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0x14, %rdx
leaq 0x2f7dc(%rip), %rsi     # 0x38d5b
movb $0x0, %al
callq 0x2080
movzbl -0x19(%rbp), %eax
cmpl $0xa, %eax
je 0x959d
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x9586
jmp 0x959f
movzbl -0x19(%rbp), %eax
cmpl $0x3e, %eax
je 0x95b6
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x959f
movq -0x8(%rbp), %rdi
leaq 0x2f79a(%rip), %rsi     # 0x38d5b
leaq -0x20(%rbp), %rdx
movb $0x0, %al
callq 0x2080
movl -0x20(%rbp), %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, 0x18(%rax)
movzbl -0x19(%rbp), %eax
cmpl $0xa, %eax
je 0x95ef
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x95d8
jmp 0x95f1
movzbl -0x19(%rbp), %eax
cmpl $0x3e, %eax
je 0x9608
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x95f1
movq -0x18(%rbp), %rax
movl $0x0, 0x8(%rax)
movq -0x18(%rbp), %rax
movq $0x0, (%rax)
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0x73, %eax
je 0x9762
jmp 0x9639
movzbl -0x19(%rbp), %eax
cmpl $0x3e, %eax
je 0x9650
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x9639
movl $0x0, -0x74(%rbp)
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0x3c, %eax
je 0x968e
movb -0x19(%rbp), %cl
movl -0x74(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0x74(%rbp)
cltq
movb %cl, -0x70(%rbp,%rax)
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x9663
movslq -0x74(%rbp), %rax
movb $0x0, -0x70(%rbp,%rax)
movzbl -0x19(%rbp), %eax
cmpl $0x3e, %eax
je 0x96ae
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x9697
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x12f60
movl %eax, -0x78(%rbp)
cmpl $-0x1, -0x78(%rbp)
jne 0x96e3
leaq 0x2bac0(%rip), %rdi     # 0x35197
movb $0x0, %al
callq 0x2100
callq 0x2170
movq -0x18(%rbp), %rax
movq (%rax), %rdx
movq -0x18(%rbp), %rax
movl 0x8(%rax), %ecx
movq -0x18(%rbp), %r8
addq $0x8, %r8
leaq -0x78(%rbp), %rdi
movl $0x1, %esi
callq 0x24e0
movq %rax, -0x80(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0x2030
movq -0x80(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movzbl -0x19(%rbp), %ecx
xorl %eax, %eax
cmpl $0x3e, %ecx
movb %al, -0x81(%rbp)
je 0x9743
movzbl -0x19(%rbp), %eax
cmpl $0x73, %eax
setne %al
movb %al, -0x81(%rbp)
movb -0x81(%rbp), %al
testb $0x1, %al
jne 0x974f
jmp 0x975d
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x9722
jmp 0x962a
jmp 0x9764
movzbl -0x19(%rbp), %eax
cmpl $0xa, %eax
je 0x977b
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x9764
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
movq -0x18(%rbp), %rax
movsbl 0x18(%rax), %eax
cmpl $0x0, %eax
je 0x97c6
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x9480
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x9480
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x28(%rax)
jmp 0x97de
movq -0x18(%rbp), %rax
movq $0x0, 0x20(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x28(%rax)
jmp 0x97e0
movzbl -0x19(%rbp), %eax
cmpl $0xa, %eax
je 0x97f7
movq -0x8(%rbp), %rdi
callq 0x2120
movb %al, -0x19(%rbp)
jmp 0x97e0
movq -0x18(%rbp), %rax
addq $0x90, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)