// File: /workspace/github_c_makefile_star2_O3/ugobas[P]tnm/mutation.c
// Function: Read_pred_para
void Read_pred_para(char *name_in){
  FILE *file_in=fopen(name_in, "r");
  if(file_in==NULL){
    printf("WARNING, parameter file %s not found\n", name_in);
    return;
  }
  char string[100];
  printf("Reading weights of mutation model in %s: ", name_in);
  while(fgets(string, sizeof(string), file_in)!=NULL){
    if(string[0]=='#')continue;
    if(strncmp(string, "EXP_FORCE", 9)==0){
      sscanf(string+10, "%f", &EXP_FORCE);
    }else if(strncmp(string, "OPT_COEFF", 9)==0){
      sscanf(string+10, "%d", &OPT_COEFF);
    }else if(strncmp(string, "OPT_SCORE", 9)==0){
      char c;
      sscanf(string+10, "%c", &c);
      if((c!='C')&&(c!='A')){
	printf("WARNING, %c is not an allowed score type\n", c);
	printf("Allowed types are C (Cartesian) and A (Absolute). ");
	printf("Using default %c\n", OPT_SCORE);
      }else{
	OPT_SCORE=c;
      }
    }else if(strncmp(string, "C_SIZE", 6)==0){
      sscanf(string+7, "%f", &C_SIZE);
    }else if(strncmp(string, "C_DIST", 6)==0){
      sscanf(string+7, "%f", &C_DIST);
    }else if(strncmp(string, "C_STAB", 6)==0){
      sscanf(string+7, "%f", &C_STAB);
    }else{
      printf("WARNING, unknown record %s\n", string);
    }
  }
  printf("size,dist,stab= %.3g %.3g %.3g\n", C_SIZE, C_DIST, C_STAB);
  fclose(file_in);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rdi, %r14
leaq 0x1ca45(%rip), %rsi     # 0x59e7e
callq 0x2220
testq %rax, %rax
je 0x3d686
movq %rax, %rbx
leaq 0x1f356(%rip), %rdi     # 0x5c7a7
movq %r14, %rsi
xorl %eax, %eax
callq 0x20f0
leaq 0x10(%rsp), %rdi
movl $0x64, %esi
movq %rbx, %rdx
callq 0x2170
testq %rax, %rax
je 0x3d649
leaq 0x1a(%rsp), %r15
leaq 0x10(%rsp), %r12
movabsq $0x43524f465f505845, %r14 # imm = 0x43524F465F505845
leaq 0x18863(%rip), %r13     # 0x55cf4
movabsq $0x46454f435f54504f, %rbp # imm = 0x46454F435F54504F
cmpb $0x23, 0x10(%rsp)
je 0x3d630
movq 0x10(%rsp), %rax
xorq %r14, %rax
movzbl 0x18(%rsp), %ecx
xorq $0x45, %rcx
orq %rax, %rcx
je 0x3d56e
movq 0x10(%rsp), %rax
xorq %rbp, %rax
movzbl 0x18(%rsp), %ecx
xorq $0x46, %rcx
orq %rax, %rcx
je 0x3d580
movq 0x10(%rsp), %rax
movabsq $0x524f43535f54504f, %rcx # imm = 0x524F43535F54504F
xorq %rcx, %rax
movzbl 0x18(%rsp), %ecx
xorq $0x45, %rcx
orq %rax, %rcx
je 0x3d596
movl 0x10(%rsp), %eax
movl $0x49535f43, %ecx       # imm = 0x49535F43
xorl %ecx, %eax
movzwl 0x14(%rsp), %ecx
xorl $0x455a, %ecx           # imm = 0x455A
orl %eax, %ecx
je 0x3d5c2
movl 0x10(%rsp), %eax
movl $0x49445f43, %ecx       # imm = 0x49445F43
xorl %ecx, %eax
movzwl 0x14(%rsp), %ecx
xorl $0x5453, %ecx           # imm = 0x5453
orl %eax, %ecx
je 0x3d609
movl 0x10(%rsp), %eax
movl $0x54535f43, %ecx       # imm = 0x54535F43
xorl %ecx, %eax
movzwl 0x14(%rsp), %ecx
xorl $0x4241, %ecx           # imm = 0x4241
orl %eax, %ecx
je 0x3d61a
leaq 0x1f314(%rip), %rdi     # 0x5c873
movq %r12, %rsi
xorl %eax, %eax
callq 0x20f0
jmp 0x3d630
movq %r15, %rdi
movq %r13, %rsi
leaq 0x3c009(%rip), %rdx     # 0x79584
jmp 0x3d629
movq %r15, %rdi
leaq 0x1fd31(%rip), %rsi     # 0x5d2bb
leaq 0x3bfff(%rip), %rdx     # 0x79590
jmp 0x3d629
movq %r15, %rdi
leaq 0x2028c(%rip), %rsi     # 0x5d82c
leaq 0xf(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movb 0xf(%rsp), %al
movl %eax, %ecx
andb $-0x3, %cl
cmpb $0x41, %cl
jne 0x3d5d3
movb %al, 0x2b9ac(%rip)      # 0x68f6c
jmp 0x3d630
leaq 0x17(%rsp), %rdi
movq %r13, %rsi
leaq 0x2b97f(%rip), %rdx     # 0x68f50
jmp 0x3d629
movsbl %al, %esi
leaq 0x1f212(%rip), %rdi     # 0x5c7ef
xorl %eax, %eax
callq 0x20f0
leaq 0x1f22e(%rip), %rdi     # 0x5c819
xorl %eax, %eax
callq 0x20f0
movsbl 0x2b973(%rip), %esi     # 0x68f6c
leaq 0x1f24c(%rip), %rdi     # 0x5c84c
xorl %eax, %eax
callq 0x20f0
jmp 0x3d630
leaq 0x17(%rsp), %rdi
movq %r13, %rsi
leaq 0x2b940(%rip), %rdx     # 0x68f58
jmp 0x3d629
leaq 0x17(%rsp), %rdi
movq %r13, %rsi
leaq 0x2b92b(%rip), %rdx     # 0x68f54
xorl %eax, %eax
callq 0x2200
movq %r12, %rdi
movl $0x64, %esi
movq %rbx, %rdx
callq 0x2170
testq %rax, %rax
jne 0x3d49b
cvtss2sd 0x2b8ff(%rip), %xmm0    # 0x68f50
cvtss2sd 0x2b8ff(%rip), %xmm1    # 0x68f58
cvtss2sd 0x2b8f3(%rip), %xmm2    # 0x68f54
leaq 0x1f227(%rip), %rdi     # 0x5c88f
movb $0x3, %al
callq 0x20f0
movq %rbx, %rdi
callq 0x20c0
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1f0f4(%rip), %rdi     # 0x5c781
movq %r14, %rsi
xorl %eax, %eax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x20f0