// File: /workspace/github_c_makefile_star2_O3/ugobas[P]tnm/main_tnm.c
// Function: Read_para
int Read_para(char *filename,
	      char *file_pdb1, char *chain1,
	      char *file_pdb2, char *chain2,
	      int *ANM, char *REF, int *LABEL,
	      int *SIDECHAINS, int *OMEGA, int *PSI,
	      double *K_OMEGA, double *K_PSI,
	      double *K_PHI, double *K_CHI,
	      double *K_BA, double *K_BL,
	      float *E_MIN, float *COLL_THR, int *MIN_INT,
	      char *INT_TYPE, float *C_THR,
	      int *S_TYPE, float *S_THR,
	      int *ONEINT, int *N_RESRES,
	      int *N_MODE, char *outdir,
	      int *PRINT_CONFCHANGE, int *PRINT_FORCE,
	      int *PRINT_PDB, int *PRINT_MODE_SUMM,
	      char **FILE_FORCE, int *ALLOSTERY,
	      float *KAPPA, int *FIT_B, float *RMSD_EXP,
	      float *RMSD_MIN, int *NMUT,
	      int *PRED_MUT, int *IWT, char *Mut_para,
	      struct Para_simul *Para_simul,
	      struct Para_confchange *Para_confchange,
	      float *SEQID_THR,
	      int *PRINT_COV_COUPLING,
	      int *PRINT_DEF_COUPLING,
	      int *PRINT_DIR_COUPLING,
	      int *PRINT_COORD_COUPLING,
	      int *PRINT_SIGMA_DIJ,
	      char *PROF_TYPE,
	      int *ALL_PAIRS, float *SIGMA,
	      int *STRAIN, char *SITES, int *PRINT_CMAT,
	      int *ANHARMONIC, int *PRINT_PDB_ANHARM, int *N_PDB_print,
	      int *FOLDING, int *BINDING, int *UNFOLDING,
	      int *n_apo, char *apo_chains)
{
  FILE *file_in=fopen(filename, "r");
  if(file_in==NULL){
    printf("ERROR, TNM input file %s not found\n", filename); 
    return(0);
  }
  char string[1000], dumm[80]; int itmp;
  printf("Reading parameters in %s\n", filename);
  while(fgets(string, sizeof(string), file_in)!=NULL){
    if(string[0]=='#')continue;
    if(strncmp(string, "PDB1", 4)==0){
      sscanf(string+5, "%s", file_pdb1);
    }else if(strncmp(string, "CH1",3 )==0){
      sscanf(string+4, "%s", dumm);
      if((strncmp(dumm,"ALL", 3)==0)||(strncmp(dumm,"all", 3)==0)){
	*chain1='*';
      }else{
	strcpy(chain1,dumm);
      }
    }else if(strncmp(string, "PDB2", 4)==0){
      sscanf(string+5, "%s", file_pdb2);
    }else if(strncmp(string, "CH2",3 )==0){
      sscanf(string+4, "%s", dumm);
      if((strncmp(dumm,"ALL", 3)==0)||(strncmp(dumm,"all", 3)==0)){
	*chain2='*';
      }else{
	strcpy(chain2,dumm);
      }
    }else if(strncmp(string, "DOF", 3)==0){
      sscanf(string+4, "%s", dumm);
      if(strncmp(dumm, "CART", 4)==0){*ANM=1;}
      else if(strncmp(dumm, "TORS", 4)!=0){
	printf("WARNING, not allowed degrees of freedom: %s\n", dumm);
      }
    }else if(strncmp(string, "REF", 3)==0){
      sscanf(string+4, "%s", REF);
    }else if(strncmp(string, "LABEL", 5)==0){
      sscanf(string+6, "%d", LABEL);
    }else if(strncmp(string, "SIDECHAIN", 9)==0){
      sscanf(string+10, "%d", SIDECHAINS);
    }else if(strncmp(string, "MIN_INT", 7)==0){
      sscanf(string+8, "%d", MIN_INT);
    }else if(strncmp(string, "E_MIN", 5)==0){
      sscanf(string+6, "%f", E_MIN);
    }else if(strncmp(string, "COLL_THR", 8)==0){
      sscanf(string+9, "%f", COLL_THR);
      printf("COLL_THR= %.1f\n", *COLL_THR);
    }else if(strncmp(string, "PSI", 3)==0){
      sscanf(string+4, "%d", PSI);
      if(*PSI==0)printf("Psi angle frozen\n");
    }else if(strncmp(string, "OMEGA", 5)==0){
      sscanf(string+6, "%d", OMEGA);
      if(*OMEGA)printf("Omega angle used as degree of freedom\n");
      if(*OMEGA<0)
	printf("Omega angle is dof if Domega>%d degrees.\n", D_omega_thr);
    }else if(strncmp(string, "K_OMEGA", 7)==0){
      sscanf(string+8, "%lf", K_OMEGA);
      if(*OMEGA){
	printf("Elastic constant for omega angle: %.3f\n", *K_OMEGA);
      }else if(*K_OMEGA){
	printf("WARNING, elastic constant for omega set but omega is frozen\n");
      }
    }else if(strncmp(string, "K_BA", 4)==0){
      sscanf(string+5, "%lf", K_BA);
      printf("Elastic constant for bond angles: %.2f\n", *K_BA);
    }else if(strncmp(string, "K_BL", 4)==0){
      sscanf(string+5, "%lf", K_BL);
      printf("Elastic constant for bond lengths: %.2f\n", *K_BL);
    }else if(strncmp(string, "K_PSI", 5)==0){
      sscanf(string+6, "%lf", K_PSI);
      if(*K_PSI)printf("Elastic constant for psi angle:    %.3f\n", *K_PSI);
    }else if(strncmp(string, "K_PHI", 5)==0){
      sscanf(string+6, "%lf", K_PHI);
      if(*K_PHI)printf("Elastic constant for phi angle:    %.3f\n", *K_PHI);
    }else if(strncmp(string, "K_CHI", 5)==0){
      sscanf(string+6, "%lf", K_CHI);
      if(*K_PHI)printf("Elastic constant for chi angle:    %.3f\n", *K_CHI);
    }else if(strncmp(string, "CONT_TYPE", 9)==0){
      sscanf(string+10, "%s", INT_TYPE);
      if(strncmp(INT_TYPE, "HNM", 3)==0)*ANM=1;
    }else if(strncmp(string, "CONT_THR", 8)==0){
      sscanf(string+ 9, "%f", C_THR);
    }else if(strncmp(string, "S_THR", 5)==0){
      sscanf(string+6, "%f", S_THR);
    }else if(strncmp(string, "S_TYPE", 6)==0){
      sscanf(string+7, "%d", S_TYPE);
    }else if(strncmp(string, "ONEINT", 6)==0){
      sscanf(string+7, "%d", ONEINT);
    }else if(strncmp(string, "N_RESRES", 8)==0){
      sscanf(string+9, "%d", N_RESRES);
      if(*N_RESRES <1){
	printf("WARNING, not allowed value of N_RESRES: %d\n", *N_RESRES);
	printf("Setting to default value 1\n"); *N_RESRES=1;
      }
    }else if(strncmp(string, "POW", 3)==0){
      sscanf(string+4,  "%d", &POW);
    }else if(strncmp(string, "EXP_HESSIAN", 11)==0){
      sscanf(string+12, "%f", &EXP_HESSIAN);
    }else if(strncmp(string, "ANHARMONIC", 10)==0){
      sscanf(string+11, "%d", ANHARMONIC);
    }else if(strncmp(string, "KAPPA", 5)==0){
      sscanf(string+6, "%f",  KAPPA);
    }else if(strncmp(string, "FIT_B", 5)==0){
      sscanf(string+6, "%d",  FIT_B);
    }else if(strncmp(string, "RMSD_EXP", 8)==0){
      sscanf(string+9, "%f",  RMSD_EXP);
    }else if(strncmp(string, "RMSD_MIN", 8)==0){
      sscanf(string+9, "%f",  RMSD_MIN);
    }else if(strncmp(string, "PRINT_PDB_ANHARM", 16)==0){
      sscanf(string+17, "%d", PRINT_PDB_ANHARM);
    }else if(strncmp(string, "N_PDB_print", 11)==0){
      sscanf(string+12, "%d", N_PDB_print);
    }else if(strncmp(string, "NMUT", 4)==0){
      sscanf(string+5, "%d",  NMUT);
    }else if(strncmp(string, "PRED_MUT", 8)==0){
      sscanf(string+9, "%d",  PRED_MUT);
    }else if(strncmp(string, "IWT", 3)==0){
      sscanf(string+4, "%d",  &itmp);
      if(itmp<0 || itmp >=20) {
	printf("WARNING, IWT=%d not allowed, using default %d\n",itmp,*IWT);
      }else{
	*IWT=itmp;
      }
    }else if(strncmp(string, "MUT_PARA", 8)==0){
      sscanf(string+9, "%s",  Mut_para);
    }else if(strncmp(string, "RMSD_THR", 8)==0){
      sscanf(string+9, "%f",  &(Para_confchange->RMSD_THR));
    }else if(strncmp(string, "SEQID_THR", 9)==0){
      sscanf(string+10, "%f", SEQID_THR);
    }else if(strncmp(string, "DEBUG", 5)==0){
      sscanf(string+6, "%d", &DEBUG);
    }else if(strncmp(string, "FILE_FORCE", 10)==0){
      *FILE_FORCE=malloc(400*sizeof(char));
      sscanf(string+11, "%s", *FILE_FORCE);
    }else if(strncmp(string, "SIMUL", 5)==0){
      sscanf(string+6, "%d", &(Para_simul->N_SIMUL));
    }else if(strncmp(string, "STEP_MAX", 8)==0){
      sscanf(string+9, "%f", &(Para_simul->STEP_MAX));
    }else if(strncmp(string, "STEP_MIN", 8)==0){
      sscanf(string+9, "%f", &(Para_simul->STEP_MIN));
    }else if(strncmp(string, "NSTEPS", 6)==0){
      sscanf(string+7, "%d", &(Para_simul->NSTEPS));
    }else if(strncmp(string, "ANGLE", 5)==0){
      sscanf(string+6, "%f", &(Para_simul->ANGLE));
    }else if(strncmp(string, "OUTDIR", 6)==0){
      sscanf(string+7, "%s", outdir);
    }else if(strncmp(string, "NMODES", 6)==0){
      sscanf(string+7, "%d", N_MODE);
    }else if(strncmp(string, "PRINT_PDB", 9)==0){
      sscanf(string+10, "%d", PRINT_PDB);
    }else if(strncmp(string, "PRINT_CHANGE", 12)==0){
      sscanf(string+13, "%d", PRINT_CONFCHANGE);
    }else if(strncmp(string, "PRINT_FORCE", 11)==0){
      sscanf(string+12, "%d", PRINT_FORCE);
    }else if(strncmp(string, "PRINT_SUMM", 10)==0){
      sscanf(string+11, "%d", PRINT_MODE_SUMM);
    }else if(strncmp(string, "ALLOSTERY", 9)==0){
      sscanf(string+10, "%d", ALLOSTERY);
    }else if(strncmp(string, "SITES", 5)==0){
      sscanf(string+6,  "%s", SITES);
    }else if(strncmp(string, "PRINT_COV_COUPLING", 18)==0){
      sscanf(string+19, "%d", PRINT_COV_COUPLING);
    }else if(strncmp(string, "PRINT_DEF_COUPLING", 18)==0){
      sscanf(string+19, "%d", PRINT_DEF_COUPLING);
    }else if(strncmp(string, "PRINT_DIR_COUPLING", 18)==0){
      sscanf(string+19, "%d", PRINT_DIR_COUPLING);
    }else if(strncmp(string, "PRINT_COORD_COUPLING", 20)==0){
      sscanf(string+21, "%d", PRINT_COORD_COUPLING);
    }else if(strncmp(string, "PRINT_SIGMA_DIJ", 15)==0){
      sscanf(string+16, "%d", PRINT_SIGMA_DIJ);
    }else if(strncmp(string, "PRINT_CONT_MAT", 14)==0){
      sscanf(string+15, "%d", PRINT_CMAT);
    }else if(strncmp(string, "PROF_TYPE", 9)==0){
      sscanf(string+10, "%s", dumm);
      if((dumm[0]=='A')||(dumm[0]=='C')||(dumm[0]=='P')){
	*PROF_TYPE=dumm[0];
      }else{
	printf("WARNING, profile type %s does not exist\n", dumm);
      }
    }else if(strncmp(string, "ALL_PAIRS", 9)==0){
      sscanf(string+10, "%d", ALL_PAIRS);
    }else if(strncmp(string, "SIGMA", 5)==0){
      sscanf(string+6, "%f", SIGMA);
    }else if(strncmp(string, "STRAIN", 6)==0){
      sscanf(string+7, "%d", STRAIN);
    }else if(strncmp(string, "AMPLITUDE", 9)==0){
      sscanf(string+10, "%f", &(Para_simul->AMPLITUDE));
    }else if(strncmp(string, "AMPL_MIN", 8)==0){
      sscanf(string+9, "%f", &(Para_simul->AMPL_MIN));
    }else if(strncmp(string, "AMPL_MAX", 8)==0){
      sscanf(string+9, "%f", &(Para_simul->AMPL_MAX));
    }else if(strncmp(string, "AMPL_FACT", 9)==0){
      sscanf(string+10, "%f", &(Para_simul->AMPL_FACT));
    }else if(strncmp(string, "E_THR", 5)==0){
      sscanf(string+6, "%f", &(Para_simul->E_THR));
    }else if(strncmp(string, "D_REP", 5)==0){
      sscanf(string+6, "%f", &(Para_simul->D_REP));
    }else if(strncmp(string, "PDB_STEP", 8)==0){
      sscanf(string+9, "%f", &(Para_simul->PDB_STEP));

    }else if(strncmp(string, "FOLDING", 7)==0){
      sscanf(string+8, "%d", FOLDING);
    }else if(strncmp(string, "UNFOLDING",9)==0){
      sscanf(string+10, "%d", UNFOLDING);
    }else if(strncmp(string, "BINDING", 7)==0){
      *n_apo=0; char *s=string+8;
      while(*s!='\n' && *s!='!'){
	if(*s!=' '){apo_chains[*n_apo]=*s; (*n_apo)++;}
	s++;
      }
      if(*n_apo>0 && *n_apo<100){
	*BINDING=1; apo_chains[*n_apo]='\0';
	printf("Computing binding free energy between chains ");
	for(int j=0; j<*n_apo; j++)printf("%c", apo_chains[j]);
	printf(" and the other chains\n"); 
      }else{
	printf("WARNING, %d is not an allowed value of n_apo\n", *n_apo);
	printf("Read string: %s", string);
      }

      //}else if(strncmp(string, "", )==0){
    }else if(string[0]!='\n'){
      printf("WARNING, unrecognized line:\n%s", string);
    }
  }
  fclose(file_in);
  if((*K_PHI==0)&&(*K_PSI))*K_PHI=*K_PSI;
  if((*K_PSI==0)&&(*K_PHI))*K_PSI=*K_PHI;
  if((*K_CHI==0)&&(*K_PHI))*K_CHI=*K_PHI;
  if((*S_TYPE < 0)||(*S_TYPE >2)){
    printf("WARNING, not allowed Shadow interaction type %d\n", *S_TYPE);
    *S_TYPE=0;
    printf("Setting to default %d (angle kij, d_ij<d_ik<d_jk)\n", *S_TYPE);
  }
  if(strncmp(INT_TYPE, "SHA", 3)==0){
    if(*S_TYPE==0){ // Thereshold on cosine(kij)
      if((*S_THR<0)||(*S_THR>1)){
	printf("ERROR Shadow type %d, shadow parameter %f out of range. ",
	       *S_TYPE, *S_THR); exit(8);
      }
    }else if (*S_TYPE==1){ // Threshold on distance from axis
      if(*S_THR<0){
	printf("ERROR Shadow type %d, shadow parameter %f out of range. ",
	       *S_TYPE, *S_THR); exit(8);
      }
    }else if (*S_TYPE==2){ // Atom radius
      if(*S_THR<0){
	printf("ERROR Shadow type %d, shadow parameter %f out of range. ",
	       *S_TYPE, *S_THR); exit(8);
      }
    }
  }
  return(1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x4c8, %rsp            # imm = 0x4C8
movq %r9, %r14
movq %r8, %r15
movq %rcx, 0x88(%rsp)
movq %rdx, 0x20(%rsp)
movq %rsi, %rbp
movq %rdi, %rbx
leaq 0x4eff0(%rip), %rsi     # 0x59e7e
callq 0x2220
testq %rax, %rax
je 0xc5be
movq %rax, %r13
movq %r15, 0x18(%rsp)
movq %r14, 0x10(%rsp)
leaq 0x49a20(%rip), %rdi     # 0x548d0
movq %rbx, %rsi
xorl %eax, %eax
callq 0x20f0
leaq 0xe0(%rsp), %rdi
movl $0x3e8, %esi            # imm = 0x3E8
movq %r13, %rdx
callq 0x2170
testq %rax, %rax
je 0xc570
movq 0x620(%rsp), %rbx
leaq 0x8(%rbx), %rax
movq %rax, 0x80(%rsp)
leaq 0x4(%rbx), %rax
movq %rax, 0x78(%rsp)
leaq 0x28(%rbx), %rax
movq %rax, 0x70(%rsp)
leaq 0x24(%rbx), %rax
movq %rax, 0x68(%rsp)
leaq 0x1c(%rbx), %rax
movq %rax, 0x60(%rsp)
leaq 0x30(%rbx), %rax
movq %rax, 0x58(%rsp)
leaq 0x38(%rbx), %rax
movq %rax, 0x50(%rsp)
leaq 0x2c(%rbx), %rax
movq %rax, 0x48(%rsp)
leaq 0x20(%rbx), %rax
movq %rax, 0x40(%rsp)
leaq 0xc(%rbx), %rax
movq %rax, 0x38(%rsp)
leaq 0x10(%rbx), %rax
movq %rax, 0x30(%rsp)
leaq 0xe0(%rsp), %r14
leaq 0x4c2d7(%rip), %r15     # 0x5722c
movl $0x4843, %r12d          # imm = 0x4843
movb 0xe0(%rsp), %al
cmpb $0x23, %al
je 0xafc5
movl 0xe0(%rsp), %ecx
cmpl $0x31424450, %ecx       # imm = 0x31424450
jne 0xaf85
leaq 0xe5(%rsp), %rdi
movq %r15, %rsi
movq %rbp, %rdx
jmp 0xafbe
movl 0xe0(%rsp), %edx
xorl %r12d, %edx
movzbl 0xe2(%rsp), %esi
xorl $0x31, %esi
orw %dx, %si
je 0xafdf
cmpl $0x32424450, %ecx       # imm = 0x32424450
jne 0xb047
leaq 0xe5(%rsp), %rdi
movq %r15, %rsi
movq 0x88(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movq %r14, %rdi
movl $0x3e8, %esi            # imm = 0x3E8
movq %r13, %rdx
callq 0x2170
testq %rax, %rax
jne 0xaf5b
jmp 0xc570
leaq 0xe4(%rsp), %rdi
movq %r15, %rsi
leaq 0x90(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movl 0x90(%rsp), %eax
movl $0x4c41, %ecx           # imm = 0x4C41
xorl %ecx, %eax
movzbl 0x92(%rsp), %ecx
xorl $0x4c, %ecx
orw %ax, %cx
je 0xb191
movl 0x90(%rsp), %eax
movl $0x6c61, %ecx           # imm = 0x6C61
xorl %ecx, %eax
movzbl 0x92(%rsp), %ecx
xorl $0x6c, %ecx
orw %ax, %cx
je 0xb191
movq 0x20(%rsp), %rdi
jmp 0xb1f6
movl 0xe0(%rsp), %ecx
xorl %r12d, %ecx
movzbl 0xe2(%rsp), %edx
xorl $0x32, %edx
orw %cx, %dx
je 0xb19b
movl 0xe0(%rsp), %ecx
movl $0x4f44, %edx           # imm = 0x4F44
xorl %edx, %ecx
movzbl 0xe2(%rsp), %edx
xorl $0x46, %edx
orw %cx, %dx
je 0xb208
movl 0xe0(%rsp), %ecx
movl $0x4552, %edx           # imm = 0x4552
xorl %edx, %ecx
movzbl 0xe2(%rsp), %edx
xorl $0x46, %edx
orw %cx, %dx
je 0xb258
movl 0xe0(%rsp), %ecx
movl $0x4542414c, %edx       # imm = 0x4542414C
xorl %edx, %ecx
movzbl 0xe4(%rsp), %edx
xorl $0x4c, %edx
orl %ecx, %edx
je 0xb270
movq 0xe0(%rsp), %rcx
movabsq $0x4941484345444953, %rdx # imm = 0x4941484345444953
xorq %rdx, %rcx
movzbl 0xe8(%rsp), %edx
xorq $0x4e, %rdx
orq %rcx, %rdx
je 0xb2a7
movl 0xe0(%rsp), %ecx
movl $0x5f4e494d, %edx       # imm = 0x5F4E494D
xorl %edx, %ecx
movl 0xe3(%rsp), %edx
movl $0x544e495f, %esi       # imm = 0x544E495F
xorl %esi, %edx
orl %ecx, %edx
je 0xb2c3
movl 0xe0(%rsp), %ecx
movl $0x494d5f45, %edx       # imm = 0x494D5F45
xorl %edx, %ecx
movzbl 0xe4(%rsp), %edx
xorl $0x4e, %edx
orl %ecx, %edx
je 0xb2df
movq 0xe0(%rsp), %rcx
movabsq $0x5248545f4c4c4f43, %rdx # imm = 0x5248545F4C4C4F43
cmpq %rdx, %rcx
jne 0xb2fb
leaq 0xe9(%rsp), %rdi
leaq 0x4ab91(%rip), %rsi     # 0x55cf4
movq 0x560(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movq 0x560(%rsp), %rax
cvtss2sd (%rax), %xmm0
leaq 0x497c0(%rip), %rdi     # 0x54945
movb $0x1, %al
callq 0x20f0
jmp 0xafc5
movq 0x20(%rsp), %rax
jmp 0xb250
leaq 0xe4(%rsp), %rdi
movq %r15, %rsi
leaq 0x90(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movl 0x90(%rsp), %eax
movl $0x4c41, %ecx           # imm = 0x4C41
xorl %ecx, %eax
movzbl 0x92(%rsp), %ecx
xorl $0x4c, %ecx
orw %ax, %cx
je 0xb24b
movl 0x90(%rsp), %eax
movl $0x6c61, %ecx           # imm = 0x6C61
xorl %ecx, %eax
movzbl 0x92(%rsp), %ecx
xorl $0x6c, %ecx
orw %ax, %cx
je 0xb24b
movq 0x18(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x2080
jmp 0xafc5
leaq 0xe4(%rsp), %rdi
movq %r15, %rsi
leaq 0x90(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movl 0x90(%rsp), %eax
cmpl $0x53524f54, %eax       # imm = 0x53524F54
je 0xafc5
cmpl $0x54524143, %eax       # imm = 0x54524143
jne 0xb28c
movq 0x10(%rsp), %rax
movl $0x1, (%rax)
jmp 0xafc5
movq 0x18(%rsp), %rax
movb $0x2a, (%rax)
jmp 0xafc5
leaq 0xe4(%rsp), %rdi
movq %r15, %rsi
movq 0x500(%rsp), %rdx
jmp 0xafbe
leaq 0xe6(%rsp), %rdi
leaq 0x5203c(%rip), %rsi     # 0x5d2bb
movq 0x508(%rsp), %rdx
jmp 0xafbe
leaq 0x49663(%rip), %rdi     # 0x548f6
leaq 0x90(%rsp), %rsi
xorl %eax, %eax
callq 0x20f0
jmp 0xafc5
leaq 0xea(%rsp), %rdi
leaq 0x52005(%rip), %rsi     # 0x5d2bb
movq 0x510(%rsp), %rdx
jmp 0xafbe
leaq 0xe8(%rsp), %rdi
leaq 0x51fe9(%rip), %rsi     # 0x5d2bb
movq 0x568(%rsp), %rdx
jmp 0xafbe
leaq 0xe6(%rsp), %rdi
leaq 0x4aa06(%rip), %rsi     # 0x55cf4
movq 0x558(%rsp), %rdx
jmp 0xafbe
movl 0xe0(%rsp), %edx
movl $0x5350, %esi           # imm = 0x5350
xorl %esi, %edx
movzbl 0xe2(%rsp), %esi
xorl $0x49, %esi
orw %dx, %si
je 0xb3b0
movl 0xe0(%rsp), %edx
movl $0x47454d4f, %esi       # imm = 0x47454D4F
xorl %esi, %edx
movzbl 0xe4(%rsp), %esi
xorl $0x41, %esi
orl %edx, %esi
je 0xb3f0
movl 0xe0(%rsp), %edx
movl $0x4d4f5f4b, %esi       # imm = 0x4D4F5F4B
xorl %esi, %edx
movl 0xe3(%rsp), %esi
movl $0x4147454d, %edi       # imm = 0x4147454D
xorl %edi, %esi
orl %edx, %esi
je 0xb455
cmpl $0x4c425f4b, %ecx       # imm = 0x4C425F4B
je 0xb49c
cmpl $0x41425f4b, %ecx       # imm = 0x41425F4B
jne 0xb4d2
leaq 0xe5(%rsp), %rdi
leaq 0x495fe(%rip), %rsi     # 0x54987
movq 0x548(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movq 0x548(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x49608(%rip), %rdi     # 0x549b3
jmp 0xb185
leaq 0xe4(%rsp), %rdi
leaq 0x51efc(%rip), %rsi     # 0x5d2bb
movq 0x520(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movq 0x520(%rsp), %rax
cmpl $0x0, (%rax)
jne 0xafc5
leaq 0x4a7ad(%rip), %rdi     # 0x55b93
callq 0x2090
jmp 0xafc5
leaq 0xe6(%rsp), %rdi
leaq 0x51ebc(%rip), %rsi     # 0x5d2bb
movq 0x518(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movq 0x518(%rsp), %rax
cmpl $0x0, (%rax)
je 0xafc5
leaq 0x4a747(%rip), %rdi     # 0x55b6d
callq 0x2090
movq 0x518(%rsp), %rax
cmpl $0x0, (%rax)
jns 0xafc5
movl 0x5dc7e(%rip), %esi     # 0x690c0
leaq 0x4950c(%rip), %rdi     # 0x54955
xorl %eax, %eax
callq 0x20f0
jmp 0xafc5
leaq 0xe8(%rsp), %rdi
leaq 0x49523(%rip), %rsi     # 0x54987
movq 0x528(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movq 0x518(%rsp), %rax
cmpl $0x0, (%rax)
movq 0x528(%rsp), %rax
movsd (%rax), %xmm0
je 0xb599
leaq 0x494f4(%rip), %rdi     # 0x5498b
jmp 0xb185
leaq 0xe5(%rsp), %rdi
leaq 0x494dc(%rip), %rsi     # 0x54987
movq 0x550(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movq 0x550(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x4950e(%rip), %rdi     # 0x549db
jmp 0xb185
movl 0xe0(%rsp), %edx
movl $0x53505f4b, %esi       # imm = 0x53505F4B
xorl %esi, %edx
movzbl 0xe4(%rsp), %esi
xorl $0x49, %esi
orl %edx, %esi
je 0xb5b5
movl 0xe0(%rsp), %edx
movl $0x48505f4b, %esi       # imm = 0x48505F4B
xorl %esi, %edx
movzbl 0xe4(%rsp), %esi
xorl $0x49, %esi
orl %edx, %esi
je 0xb5fb
movl 0xe0(%rsp), %edx
movl $0x48435f4b, %esi       # imm = 0x48435F4B
xorl %esi, %edx
movzbl 0xe4(%rsp), %esi
xorl $0x49, %esi
orl %edx, %esi
je 0xb641
movabsq $0x5059545f464f5250, %rdx # imm = 0x5059545F464F5250
addq $0xdfefcf3, %rdx        # imm = 0xDFEFCF3
xorq 0xe0(%rsp), %rdx
movzbl 0xe8(%rsp), %esi
xorq $0x45, %rsi
orq %rdx, %rsi
je 0xb693
movabsq $0x5248545f4c4c4f43, %rdx # imm = 0x5248545F4C4C4F43
addq $0x8020000, %rdx        # imm = 0x8020000
cmpq %rdx, %rcx
jne 0xb6d7
leaq 0xe9(%rsp), %rdi
leaq 0x4a768(%rip), %rsi     # 0x55cf4
movq 0x578(%rsp), %rdx
jmp 0xafbe
ucomisd 0x45bd7(%rip), %xmm0    # 0x51178
jne 0xb5a9
jnp 0xafc5
leaq 0x4a581(%rip), %rdi     # 0x55b31
jmp 0xb3e6
leaq 0xe6(%rsp), %rdi
leaq 0x493c3(%rip), %rsi     # 0x54987
movq 0x530(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movq 0x530(%rsp), %rax
movsd (%rax), %xmm0
ucomisd 0x45b91(%rip), %xmm0    # 0x51178
jne 0xb5ef
jnp 0xafc5
leaq 0x49414(%rip), %rdi     # 0x54a0a
jmp 0xb185
leaq 0xe6(%rsp), %rdi
leaq 0x4937d(%rip), %rsi     # 0x54987
movq 0x538(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movq 0x538(%rsp), %rax
movsd (%rax), %xmm0
ucomisd 0x45b4b(%rip), %xmm0    # 0x51178
jne 0xb635
jnp 0xafc5
leaq 0x493fd(%rip), %rdi     # 0x54a39
jmp 0xb185
leaq 0xe6(%rsp), %rdi
leaq 0x49337(%rip), %rsi     # 0x54987
movq 0x540(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movq 0x538(%rsp), %rax
movsd (%rax), %xmm0
ucomisd 0x45b05(%rip), %xmm0    # 0x51178
jne 0xb67b
jnp 0xafc5
movq 0x540(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x493da(%rip), %rdi     # 0x54a68
jmp 0xb185
leaq 0xea(%rsp), %rdi
movq %r15, %rsi
movq 0x570(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movq 0x570(%rsp), %rax
cmpb $0x48, (%rax)
jne 0xafc5
cmpb $0x4e, 0x1(%rax)
jne 0xafc5
cmpb $0x4d, 0x2(%rax)
jne 0xafc5
jmp 0xb23b
movl 0xe0(%rsp), %edx
movl $0x48545f53, %esi       # imm = 0x48545F53
xorl %esi, %edx
movzbl 0xe4(%rsp), %esi
xorl $0x52, %esi
orl %edx, %esi
je 0xb7aa
movl 0xe0(%rsp), %edx
movl $0x59545f53, %esi       # imm = 0x59545F53
xorl %esi, %edx
movzwl 0xe4(%rsp), %esi
xorl $0x4550, %esi           # imm = 0x4550
orl %edx, %esi
je 0xb7c6
movl 0xe0(%rsp), %edx
movl $0x49454e4f, %esi       # imm = 0x49454E4F
xorl %esi, %edx
movzwl 0xe4(%rsp), %esi
xorl $0x544e, %esi           # imm = 0x544E
orl %edx, %esi
je 0xb7e2
movabsq $0x5345525345525f4e, %rdx # imm = 0x5345525345525F4E
cmpq %rdx, %rcx
jne 0xb7fe
leaq 0xe9(%rsp), %rdi
leaq 0x51b59(%rip), %rsi     # 0x5d2bb
movq 0x598(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movq 0x598(%rsp), %rax
movl (%rax), %esi
testl %esi, %esi
jg 0xafc5
leaq 0x49325(%rip), %rdi     # 0x54aaf
xorl %eax, %eax
callq 0x20f0
leaq 0x4a37e(%rip), %rdi     # 0x55b16
callq 0x2090
movq 0x598(%rsp), %rax
jmp 0xb240
leaq 0xe6(%rsp), %rdi
leaq 0x4a53b(%rip), %rsi     # 0x55cf4
movq 0x588(%rsp), %rdx
jmp 0xafbe
leaq 0xe7(%rsp), %rdi
leaq 0x51ae6(%rip), %rsi     # 0x5d2bb
movq 0x580(%rsp), %rdx
jmp 0xafbe
leaq 0xe7(%rsp), %rdi
leaq 0x51aca(%rip), %rsi     # 0x5d2bb
movq 0x590(%rsp), %rdx
jmp 0xafbe
movl 0xe0(%rsp), %edx
movl $0x4f50, %esi           # imm = 0x4F50
xorl %esi, %edx
movzbl 0xe2(%rsp), %esi
xorl $0x57, %esi
orw %dx, %si
je 0xb904
movq 0xe0(%rsp), %rdx
movabsq $0x535345485f505845, %rsi # imm = 0x535345485F505845
xorq %rsi, %rdx
movq 0xe3(%rsp), %rsi
movabsq $0x4e4149535345485f, %rdi # imm = 0x4E4149535345485F
xorq %rdi, %rsi
orq %rdx, %rsi
je 0xb91f
movq 0xe0(%rsp), %rdx
movabsq $0x4e4f4d5241484e41, %rsi # imm = 0x4E4F4D5241484E41
xorq %rsi, %rdx
movzwl 0xe8(%rsp), %esi
xorq $0x4349, %rsi           # imm = 0x4349
orq %rdx, %rsi
je 0xb93a
movl 0xe0(%rsp), %edx
movl $0x5050414b, %esi       # imm = 0x5050414B
xorl %esi, %edx
movzbl 0xe4(%rsp), %esi
xorl $0x41, %esi
orl %edx, %esi
je 0xb956
movl 0xe0(%rsp), %edx
movl $0x5f544946, %esi       # imm = 0x5F544946
xorl %esi, %edx
movzbl 0xe4(%rsp), %esi
xorl $0x42, %esi
orl %edx, %esi
je 0xb972
movabsq $0x4e494d5f44534d52, %rdx # imm = 0x4E494D5F44534D52
cmpq %rdx, %rcx
je 0xb98e
movabsq $0x5058455f44534d52, %rdx # imm = 0x5058455F44534D52
cmpq %rdx, %rcx
jne 0xb9aa
leaq 0xe9(%rsp), %rdi
leaq 0x4a3fd(%rip), %rsi     # 0x55cf4
movq 0x5f0(%rsp), %rdx
jmp 0xafbe
leaq 0xe4(%rsp), %rdi
leaq 0x519a8(%rip), %rsi     # 0x5d2bb
leaq 0x5ccd2(%rip), %rdx     # 0x685ec
jmp 0xafbe
leaq 0xec(%rsp), %rdi
leaq 0x4a3c6(%rip), %rsi     # 0x55cf4
leaq 0x5d737(%rip), %rdx     # 0x6906c
jmp 0xafbe
leaq 0xeb(%rsp), %rdi
leaq 0x51972(%rip), %rsi     # 0x5d2bb
movq 0x690(%rsp), %rdx
jmp 0xafbe
leaq 0xe6(%rsp), %rdi
leaq 0x4a38f(%rip), %rsi     # 0x55cf4
movq 0x5e0(%rsp), %rdx
jmp 0xafbe
leaq 0xe6(%rsp), %rdi
leaq 0x5193a(%rip), %rsi     # 0x5d2bb
movq 0x5e8(%rsp), %rdx
jmp 0xafbe
leaq 0xe9(%rsp), %rdi
leaq 0x4a357(%rip), %rsi     # 0x55cf4
movq 0x5f8(%rsp), %rdx
jmp 0xafbe
movdqa 0xe0(%rsp), %xmm0
pcmpeqb 0x456e5(%rip), %xmm0    # 0x510a0
pmovmskb %xmm0, %edx
cmpl $0xffff, %edx           # imm = 0xFFFF
je 0xba1a
movq 0xe0(%rsp), %rdx
movabsq $0x72705f4244505f4e, %rsi # imm = 0x72705F4244505F4E
xorq %rsi, %rdx
movq 0xe3(%rsp), %rsi
movabsq $0x746e6972705f4244, %rdi # imm = 0x746E6972705F4244
xorq %rdi, %rsi
orq %rdx, %rsi
je 0xba36
cmpl $0x54554d4e, %ecx       # imm = 0x54554D4E
jne 0xba52
leaq 0xe5(%rsp), %rdi
leaq 0x518ae(%rip), %rsi     # 0x5d2bb
movq 0x600(%rsp), %rdx
jmp 0xafbe
leaq 0xf1(%rsp), %rdi
leaq 0x51892(%rip), %rsi     # 0x5d2bb
movq 0x698(%rsp), %rdx
jmp 0xafbe
leaq 0xec(%rsp), %rdi
leaq 0x51876(%rip), %rsi     # 0x5d2bb
movq 0x6a0(%rsp), %rdx
jmp 0xafbe
movabsq $0x54554d5f44455250, %rdx # imm = 0x54554D5F44455250
cmpq %rdx, %rcx
jne 0xba7d
leaq 0xe9(%rsp), %rdi
leaq 0x5184b(%rip), %rsi     # 0x5d2bb
movq 0x608(%rsp), %rdx
jmp 0xafbe
movl 0xe0(%rsp), %edx
movl $0x5749, %esi           # imm = 0x5749
xorl %esi, %edx
movzbl 0xe2(%rsp), %esi
xorl $0x54, %esi
orw %dx, %si
je 0xbad1
movabsq $0x5248545f44534d52, %rdx # imm = 0x5248545F44534D52
cmpq %rdx, %rcx
je 0xbb16
movabsq $0x415241505f54554d, %rdx # imm = 0x415241505F54554D
cmpq %rdx, %rcx
jne 0xbb32
leaq 0xe9(%rsp), %rdi
movq %r15, %rsi
movq 0x618(%rsp), %rdx
jmp 0xafbe
leaq 0xe4(%rsp), %rdi
leaq 0x517db(%rip), %rsi     # 0x5d2bb
leaq 0xc(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movl 0xc(%rsp), %esi
movq 0x610(%rsp), %rax
cmpl $0x14, %esi
jb 0xbc0a
movl (%rax), %edx
leaq 0x49013(%rip), %rdi     # 0x54b1d
xorl %eax, %eax
callq 0x20f0
jmp 0xafc5
leaq 0xe9(%rsp), %rdi
leaq 0x4a1cf(%rip), %rsi     # 0x55cf4
movq 0x628(%rsp), %rdx
jmp 0xafbe
movq 0xe0(%rsp), %rdx
movabsq $0x48545f4449514553, %rsi # imm = 0x48545F4449514553
xorq %rsi, %rdx
movzbl 0xe8(%rsp), %esi
xorq $0x52, %rsi
orq %rdx, %rsi
je 0xbc11
movl 0xe0(%rsp), %edx
movl $0x55424544, %esi       # imm = 0x55424544
xorl %esi, %edx
movzbl 0xe4(%rsp), %esi
xorl $0x47, %esi
orl %edx, %esi
je 0xbc2d
movq 0xe0(%rsp), %rdx
movabsq $0x524f465f454c4946, %rsi # imm = 0x524F465F454C4946
xorq %rsi, %rdx
movzwl 0xe8(%rsp), %esi
xorq $0x4543, %rsi           # imm = 0x4543
orq %rdx, %rsi
je 0xbc48
movl 0xe0(%rsp), %edx
movl $0x554d4953, %esi       # imm = 0x554D4953
xorl %esi, %edx
movzbl 0xe4(%rsp), %esi
xorl $0x4c, %esi
orl %edx, %esi
je 0xbc70
movabsq $0x4e494d5f50455453, %rdx # imm = 0x4E494D5F50455453
cmpq %rdx, %rcx
je 0xbc87
movabsq $0x58414d5f50455453, %rdx # imm = 0x58414D5F50455453
cmpq %rdx, %rcx
jne 0xbca3
leaq 0xe9(%rsp), %rdi
leaq 0x4a0f4(%rip), %rsi     # 0x55cf4
movq 0x78(%rsp), %rdx
jmp 0xafbe
movl %esi, (%rax)
jmp 0xafc5
leaq 0xea(%rsp), %rdi
leaq 0x4a0d4(%rip), %rsi     # 0x55cf4
movq 0x630(%rsp), %rdx
jmp 0xafbe
leaq 0xe6(%rsp), %rdi
leaq 0x5167f(%rip), %rsi     # 0x5d2bb
leaq 0x6d7a9(%rip), %rdx     # 0x793ec
jmp 0xafbe
movl $0x190, %edi            # imm = 0x190
callq 0x21e0
movq 0x5d0(%rsp), %rcx
movq %rax, (%rcx)
leaq 0xeb(%rsp), %rdi
movq %r15, %rsi
movq %rax, %rdx
jmp 0xafbe
leaq 0xe6(%rsp), %rdi
leaq 0x5163c(%rip), %rsi     # 0x5d2bb
movq %rbx, %rdx
jmp 0xafbe
leaq 0xe9(%rsp), %rdi
leaq 0x4a05e(%rip), %rsi     # 0x55cf4
movq 0x80(%rsp), %rdx
jmp 0xafbe
movl 0xe0(%rsp), %edx
movl $0x4554534e, %esi       # imm = 0x4554534E
xorl %esi, %edx
movzwl 0xe4(%rsp), %esi
xorl $0x5350, %esi           # imm = 0x5350
orl %edx, %esi
je 0xc07a
movl 0xe0(%rsp), %edx
movl $0x4c474e41, %esi       # imm = 0x4C474E41
xorl %esi, %edx
movzbl 0xe4(%rsp), %esi
xorl $0x45, %esi
orl %edx, %esi
je 0xc093
movl 0xe0(%rsp), %edx
movl $0x4454554f, %esi       # imm = 0x4454554F
xorl %esi, %edx
movzwl 0xe4(%rsp), %esi
xorl $0x5249, %esi           # imm = 0x5249
orl %edx, %esi
je 0xc0ac
movl 0xe0(%rsp), %edx
movl $0x444f4d4e, %esi       # imm = 0x444F4D4E
xorl %esi, %edx
movzwl 0xe4(%rsp), %esi
xorl $0x5345, %esi           # imm = 0x5345
orl %edx, %esi
je 0xc0c4
movq 0xe0(%rsp), %rdx
movabsq $0x44505f544e495250, %rsi # imm = 0x44505F544E495250
xorq %rsi, %rdx
movzbl 0xe8(%rsp), %esi
xorq $0x42, %rsi
orq %rdx, %rsi
je 0xc0e0
movq 0xe0(%rsp), %rdx
movabsq $0x48435f544e495250, %rsi # imm = 0x48435F544E495250
xorq %rsi, %rdx
movl 0xe8(%rsp), %esi
xorq $0x45474e41, %rsi       # imm = 0x45474E41
orq %rdx, %rsi
je 0xc0fc
movq 0xe0(%rsp), %rdx
movabsq $0x4f465f544e495250, %rsi # imm = 0x4F465F544E495250
xorq %rsi, %rdx
movq 0xe3(%rsp), %rsi
movabsq $0x4543524f465f544e, %rdi # imm = 0x4543524F465F544E
xorq %rdi, %rsi
orq %rdx, %rsi
je 0xc118
movq 0xe0(%rsp), %rdx
movabsq $0x55535f544e495250, %rsi # imm = 0x55535F544E495250
xorq %rsi, %rdx
movzwl 0xe8(%rsp), %esi
xorq $0x4d4d, %rsi           # imm = 0x4D4D
orq %rdx, %rsi
je 0xc134
movq 0xe0(%rsp), %rdx
movabsq $0x524554534f4c4c41, %rsi # imm = 0x524554534F4C4C41
xorq %rsi, %rdx
movzbl 0xe8(%rsp), %esi
xorq $0x59, %rsi
orq %rdx, %rsi
je 0xc150
movl 0xe0(%rsp), %edx
movl $0x45544953, %esi       # imm = 0x45544953
xorl %esi, %edx
movzbl 0xe4(%rsp), %esi
xorl $0x53, %esi
orl %edx, %esi
je 0xc16c
movzwl 0xf0(%rsp), %edx
movd %edx, %xmm0
movdqa 0xe0(%rsp), %xmm1
pcmpeqb 0x45262(%rip), %xmm1    # 0x510b0
pcmpeqb 0x4526a(%rip), %xmm0    # 0x510c0
pand %xmm1, %xmm0
pmovmskb %xmm0, %edx
cmpl $0xffff, %edx           # imm = 0xFFFF
je 0xc184
movzwl 0xf0(%rsp), %edx
movd %edx, %xmm0
movdqa 0xe0(%rsp), %xmm1
pcmpeqb 0x45249(%rip), %xmm1    # 0x510d0
pcmpeqb 0x45231(%rip), %xmm0    # 0x510c0
pand %xmm1, %xmm0
pmovmskb %xmm0, %edx
cmpl $0xffff, %edx           # imm = 0xFFFF
je 0xc1a0
movzwl 0xf0(%rsp), %edx
movd %edx, %xmm0
movdqa 0xe0(%rsp), %xmm1
pcmpeqb 0x45220(%rip), %xmm1    # 0x510e0
pcmpeqb 0x451f8(%rip), %xmm0    # 0x510c0
pand %xmm1, %xmm0
pmovmskb %xmm0, %edx
cmpl $0xffff, %edx           # imm = 0xFFFF
je 0xc1bc
movd 0xf0(%rsp), %xmm0
pcmpeqb 0x45203(%rip), %xmm0    # 0x510f0
movdqa 0xe0(%rsp), %xmm1
pcmpeqb 0x45202(%rip), %xmm1    # 0x51100
pand %xmm0, %xmm1
pmovmskb %xmm1, %edx
cmpl $0xffff, %edx           # imm = 0xFFFF
je 0xc1d8
movq 0xe0(%rsp), %rdx
movabsq $0x49535f544e495250, %rsi # imm = 0x49535F544E495250
xorq %rsi, %rdx
movq 0xe7(%rsp), %rsi
movabsq $0x4a49445f414d4749, %rdi # imm = 0x4A49445F414D4749
xorq %rdi, %rsi
orq %rdx, %rsi
je 0xc1f4
movq 0xe0(%rsp), %rdx
movabsq $0x4f435f544e495250, %rsi # imm = 0x4F435F544E495250
xorq %rsi, %rdx
movq 0xe6(%rsp), %rsi
movabsq $0x54414d5f544e4f43, %rdi # imm = 0x54414D5F544E4F43
xorq %rdi, %rsi
orq %rdx, %rsi
je 0xc210
movq 0xe0(%rsp), %rdx
movabsq $0x5059545f464f5250, %rsi # imm = 0x5059545F464F5250
xorq %rsi, %rdx
movzbl 0xe8(%rsp), %esi
xorq $0x45, %rsi
orq %rdx, %rsi
je 0xc22c
movq 0xe0(%rsp), %rdx
movabsq $0x524941505f4c4c41, %rsi # imm = 0x524941505F4C4C41
xorq %rsi, %rdx
movzbl 0xe8(%rsp), %esi
xorq $0x53, %rsi
orq %rdx, %rsi
je 0xc26f
movl 0xe0(%rsp), %edx
movl $0x4d474953, %esi       # imm = 0x4D474953
xorl %esi, %edx
movzbl 0xe4(%rsp), %esi
xorl $0x41, %esi
orl %edx, %esi
je 0xc28b
movl 0xe0(%rsp), %edx
movl $0x41525453, %esi       # imm = 0x41525453
xorl %esi, %edx
movzwl 0xe4(%rsp), %esi
xorl $0x4e49, %esi           # imm = 0x4E49
orl %edx, %esi
je 0xc2b3
movq 0xe0(%rsp), %rdx
movabsq $0x445554494c504d41, %rsi # imm = 0x445554494C504D41
xorq %rsi, %rdx
movzbl 0xe8(%rsp), %esi
xorq $0x45, %rsi
orq %rdx, %rsi
je 0xc2cf
movabsq $0x58414d5f4c504d41, %rdx # imm = 0x58414D5F4C504D41
cmpq %rdx, %rcx
je 0xc2e8
movabsq $0x4e494d5f4c504d41, %rdx # imm = 0x4E494D5F4C504D41
cmpq %rdx, %rcx
jne 0xc301
leaq 0xe9(%rsp), %rdi
leaq 0x49c84(%rip), %rsi     # 0x55cf4
movq 0x68(%rsp), %rdx
jmp 0xafbe
leaq 0xe7(%rsp), %rdi
leaq 0x51232(%rip), %rsi     # 0x5d2bb
movq 0x30(%rsp), %rdx
jmp 0xafbe
leaq 0xe6(%rsp), %rdi
leaq 0x49c52(%rip), %rsi     # 0x55cf4
movq 0x38(%rsp), %rdx
jmp 0xafbe
leaq 0xe7(%rsp), %rdi
movq %r15, %rsi
movq 0x5a8(%rsp), %rdx
jmp 0xafbe
leaq 0xe7(%rsp), %rdi
leaq 0x511e8(%rip), %rsi     # 0x5d2bb
movq 0x5a0(%rsp), %rdx
jmp 0xafbe
leaq 0xea(%rsp), %rdi
leaq 0x511cc(%rip), %rsi     # 0x5d2bb
movq 0x5c0(%rsp), %rdx
jmp 0xafbe
leaq 0xed(%rsp), %rdi
leaq 0x511b0(%rip), %rsi     # 0x5d2bb
movq 0x5b0(%rsp), %rdx
jmp 0xafbe
leaq 0xec(%rsp), %rdi
leaq 0x51194(%rip), %rsi     # 0x5d2bb
movq 0x5b8(%rsp), %rdx
jmp 0xafbe
leaq 0xeb(%rsp), %rdi
leaq 0x51178(%rip), %rsi     # 0x5d2bb
movq 0x5c8(%rsp), %rdx
jmp 0xafbe
leaq 0xea(%rsp), %rdi
leaq 0x5115c(%rip), %rsi     # 0x5d2bb
movq 0x5d8(%rsp), %rdx
jmp 0xafbe
leaq 0xe6(%rsp), %rdi
movq %r15, %rsi
movq 0x680(%rsp), %rdx
jmp 0xafbe
leaq 0xf3(%rsp), %rdi
leaq 0x51128(%rip), %rsi     # 0x5d2bb
movq 0x638(%rsp), %rdx
jmp 0xafbe
leaq 0xf3(%rsp), %rdi
leaq 0x5110c(%rip), %rsi     # 0x5d2bb
movq 0x640(%rsp), %rdx
jmp 0xafbe
leaq 0xf3(%rsp), %rdi
leaq 0x510f0(%rip), %rsi     # 0x5d2bb
movq 0x648(%rsp), %rdx
jmp 0xafbe
leaq 0xf5(%rsp), %rdi
leaq 0x510d4(%rip), %rsi     # 0x5d2bb
movq 0x650(%rsp), %rdx
jmp 0xafbe
leaq 0xf0(%rsp), %rdi
leaq 0x510b8(%rip), %rsi     # 0x5d2bb
movq 0x658(%rsp), %rdx
jmp 0xafbe
leaq 0xef(%rsp), %rdi
leaq 0x5109c(%rip), %rsi     # 0x5d2bb
movq 0x688(%rsp), %rdx
jmp 0xafbe
leaq 0xea(%rsp), %rdi
movq %r15, %rsi
leaq 0x90(%rsp), %rdx
xorl %eax, %eax
callq 0x2200
movzbl 0x90(%rsp), %eax
leal -0x41(%rax), %ecx
cmpl $0xf, %ecx
ja 0xc2a7
movl $0x8005, %edx           # imm = 0x8005
btl %ecx, %edx
jae 0xc2a7
movq 0x660(%rsp), %rcx
movb %al, (%rcx)
jmp 0xafc5
leaq 0xea(%rsp), %rdi
leaq 0x5103d(%rip), %rsi     # 0x5d2bb
movq 0x668(%rsp), %rdx
jmp 0xafbe
leaq 0xe6(%rsp), %rdi
leaq 0x49a5a(%rip), %rsi     # 0x55cf4
movq 0x670(%rsp), %rdx
jmp 0xafbe
leaq 0x4898f(%rip), %rdi     # 0x54c3d
jmp 0xb293
leaq 0xe7(%rsp), %rdi
leaq 0x50ff9(%rip), %rsi     # 0x5d2bb
movq 0x678(%rsp), %rdx
jmp 0xafbe
leaq 0xea(%rsp), %rdi
leaq 0x49a16(%rip), %rsi     # 0x55cf4
movq 0x40(%rsp), %rdx
jmp 0xafbe
leaq 0xe9(%rsp), %rdi
leaq 0x499fd(%rip), %rsi     # 0x55cf4
movq 0x70(%rsp), %rdx
jmp 0xafbe
movq 0xe0(%rsp), %rdx
movabsq $0x4341465f4c504d41, %rsi # imm = 0x4341465F4C504D41
xorq %rsi, %rdx
movzbl 0xe8(%rsp), %esi
xorq $0x54, %rsi
orq %rdx, %rsi
je 0xc389
movl 0xe0(%rsp), %edx
movl $0x48545f45, %esi       # imm = 0x48545F45
xorl %esi, %edx
movzbl 0xe4(%rsp), %esi
xorl $0x52, %esi
orl %edx, %esi
je 0xc3a2
movl 0xe0(%rsp), %edx
movl $0x45525f44, %esi       # imm = 0x45525F44
xorl %esi, %edx
movzbl 0xe4(%rsp), %esi
xorl $0x50, %esi
orl %edx, %esi
je 0xc3bb
movabsq $0x504554535f424450, %rdx # imm = 0x504554535F424450
cmpq %rdx, %rcx
jne 0xc3d4
leaq 0xe9(%rsp), %rdi
leaq 0x49975(%rip), %rsi     # 0x55cf4
movq 0x60(%rsp), %rdx
jmp 0xafbe
leaq 0xea(%rsp), %rdi
leaq 0x4995c(%rip), %rsi     # 0x55cf4
movq 0x48(%rsp), %rdx
jmp 0xafbe
leaq 0xe6(%rsp), %rdi
leaq 0x49943(%rip), %rsi     # 0x55cf4
movq 0x50(%rsp), %rdx
jmp 0xafbe
leaq 0xe6(%rsp), %rdi
leaq 0x4992a(%rip), %rsi     # 0x55cf4
movq 0x58(%rsp), %rdx
jmp 0xafbe
movl 0xe0(%rsp), %ecx
movl $0x444c4f46, %edx       # imm = 0x444C4F46
xorl %edx, %ecx
movl 0xe3(%rsp), %edx
movl $0x474e4944, %esi       # imm = 0x474E4944
xorl %esi, %edx
orl %ecx, %edx
je 0xc449
movq 0xe0(%rsp), %rcx
movabsq $0x4e49444c4f464e55, %rdx # imm = 0x4E49444C4F464E55
xorq %rdx, %rcx
movzbl 0xe8(%rsp), %edx
xorq $0x47, %rdx
orq %rcx, %rdx
je 0xc465
movl 0xe0(%rsp), %ecx
movl $0x444e4942, %edx       # imm = 0x444E4942
xorl %edx, %ecx
movl 0xe3(%rsp), %edx
xorl %esi, %edx
orl %ecx, %edx
je 0xc481
cmpb $0xa, %al
je 0xafc5
leaq 0x488d7(%rip), %rdi     # 0x54d1b
jmp 0xc568
leaq 0xe8(%rsp), %rdi
leaq 0x50e63(%rip), %rsi     # 0x5d2bb
movq 0x6a8(%rsp), %rdx
jmp 0xafbe
leaq 0xea(%rsp), %rdi
leaq 0x50e47(%rip), %rsi     # 0x5d2bb
movq 0x6b8(%rsp), %rdx
jmp 0xafbe
movq 0x6c0(%rsp), %rax
movl $0x0, (%rax)
xorl %esi, %esi
leaq 0xe8(%rsp), %rax
movzbl (%rax), %ecx
cmpl $0x20, %ecx
je 0xc4c7
cmpl $0xa, %ecx
je 0xc4cc
cmpl $0x21, %ecx
je 0xc4cc
movslq %esi, %rdx
movq 0x6c8(%rsp), %rsi
movb %cl, (%rsi,%rdx)
movq 0x6c0(%rsp), %rcx
movl (%rcx), %esi
incl %esi
movl %esi, (%rcx)
incq %rax
jmp 0xc499
leal -0x1(%rsi), %eax
cmpl $0x62, %eax
ja 0xc553
movq 0x6b0(%rsp), %rax
movl $0x1, (%rax)
movq 0x6c0(%rsp), %rax
movslq (%rax), %rax
movq 0x6c8(%rsp), %rcx
movb $0x0, (%rcx,%rax)
leaq 0x487af(%rip), %rdi     # 0x54caf
xorl %eax, %eax
callq 0x20f0
movq 0x6c0(%rsp), %rax
cmpl $0x0, (%rax)
jle 0xc547
xorl %ecx, %ecx
movq 0x6c8(%rsp), %rax
movq %rcx, 0x28(%rsp)
movsbl (%rax,%rcx), %edi
callq 0x2060
movq 0x28(%rsp), %rdx
incq %rdx
movq 0x6c0(%rsp), %rax
movslq (%rax), %rax
movq %rdx, %rcx
cmpq %rax, %rdx
jl 0xc516
leaq 0x495b2(%rip), %rdi     # 0x55b00
jmp 0xb3e6
leaq 0x48783(%rip), %rdi     # 0x54cdd
xorl %eax, %eax
callq 0x20f0
leaq 0x487a3(%rip), %rdi     # 0x54d0b
movq %r14, %rsi
jmp 0xb29b
movq %r13, %rdi
callq 0x20c0
movq 0x538(%rsp), %rcx
movsd (%rcx), %xmm0
xorpd %xmm2, %xmm2
ucomisd %xmm2, %xmm0
jne 0xc5d6
jp 0xc5d6
movq 0x530(%rsp), %rdx
movsd (%rdx), %xmm1
ucomisd %xmm2, %xmm1
movq 0x580(%rsp), %rbx
movq 0x540(%rsp), %rax
jne 0xc5b4
jnp 0xc5f2
movsd %xmm1, (%rcx)
movapd %xmm1, %xmm0
jmp 0xc5ee
leaq 0x482e7(%rip), %rdi     # 0x548ac
xorl %ebp, %ebp
movq %rbx, %rsi
xorl %eax, %eax
callq 0x20f0
jmp 0xc6f3
movq 0x580(%rsp), %rbx
movq 0x540(%rsp), %rax
movq 0x530(%rsp), %rdx
movsd (%rdx), %xmm1
ucomisd %xmm2, %xmm1
movq 0x570(%rsp), %r14
jne 0xc60e
jp 0xc60e
ucomisd %xmm2, %xmm0
jne 0xc60a
jnp 0xc60e
movsd %xmm0, (%rdx)
movsd (%rax), %xmm0
ucomisd %xmm2, %xmm0
jne 0xc62e
jp 0xc62e
movsd (%rcx), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xc62a
jnp 0xc62e
movsd %xmm0, (%rax)
movl (%rbx), %esi
cmpl $0x3, %esi
jb 0xc659
leaq 0x486fe(%rip), %rdi     # 0x54d3a
xorl %eax, %eax
callq 0x20f0
movl $0x0, (%rbx)
leaq 0x4871b(%rip), %rdi     # 0x54d6b
xorl %esi, %esi
xorl %eax, %eax
callq 0x20f0
cmpb $0x53, (%r14)
jne 0xc6ee
cmpb $0x48, 0x1(%r14)
jne 0xc6ee
cmpb $0x41, 0x2(%r14)
jne 0xc6ee
movl (%rbx), %eax
cmpl $0x2, %eax
je 0xc6d9
cmpl $0x1, %eax
je 0xc6b2
testl %eax, %eax
jne 0xc6ee
movq 0x588(%rsp), %rax
movss (%rax), %xmm0
xorpd %xmm1, %xmm1
ucomiss %xmm0, %xmm1
ja 0xc6a3
ucomiss 0x44a7b(%rip), %xmm0    # 0x5111c
jbe 0xc6ee
cvtss2sd %xmm0, %xmm0
leaq 0x486f0(%rip), %rdi     # 0x54d9e
xorl %esi, %esi
jmp 0xc717
movq 0x588(%rsp), %rax
movss (%rax), %xmm0
xorpd %xmm1, %xmm1
ucomiss %xmm0, %xmm1
jbe 0xc6ee
cvtss2sd %xmm0, %xmm0
leaq 0x486cc(%rip), %rdi     # 0x54d9e
movl $0x1, %esi
jmp 0xc717
movq 0x588(%rsp), %rax
movss (%rax), %xmm0
xorpd %xmm1, %xmm1
ucomiss %xmm0, %xmm1
ja 0xc707
movl $0x1, %ebp
movl %ebp, %eax
addq $0x4c8, %rsp            # imm = 0x4C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cvtss2sd %xmm0, %xmm0
leaq 0x4868c(%rip), %rdi     # 0x54d9e
movl $0x2, %esi
movb $0x1, %al
callq 0x20f0
movl $0x8, %edi
callq 0x2280