// File: /workspace/github_c_makefile_star2_O2/olcaytaner[P]Isell/algorithm.c
// Function: prepare_supervised_algorithm_parameters
void* prepare_supervised_algorithm_parameters(int algorithm)
{
 /*!Last Changed 11.08.2007 added SVMTREE algorithm*/
 /*!Last Changed 11.08.2007 added NAIVEBAYES algorithm*/
 /*!Last Changed 05.08.2007 added QDACLASS algorithm*/
 /*!Last Changed 02.04.2007 added HMM algorithm*/
 /*!Last Changed 14.08.2005*/
 Knn_parameterptr pknn;
 C45_parameterptr pc45;
 Ldaclass_parameterptr plda;
 Ripper_parameterptr prip;
 Mlpparametersptr pmlp;
 Softregtree_parameterptr psoftregtree;
 Regtree_parameterptr pregtree;
 Multildt_parameterptr pmultildt;
 Quantizereg_parameterptr pqua;
 Regrule_parameterptr pregrule;
 Logistic_parameterptr plogistic;
 Svm_parameterptr psvm;
 Svmtree_parameterptr psvmtree;
 Nodeboundedtree_parameterptr pnbtree;
 Hmm_parameterptr phmm;
 Rbf_parameterptr prbf;
 Gprocess_parameterptr pgprocess;
 Randomforest_parameterptr prf;
 Kforest_parameterptr pkf;
 Cn2_parameterptr pcn2;
 Lerils_parameterptr plerils;
 Svm_simplex_parameterptr ssvm;
 switch (algorithm)
  {
   case SELECTMAX     :
   case ONEFEATURE    :
   case NEARESTMEAN   :
   case GAUSSIAN      :
   case SELECTAVERAGE :
   case LINEARREG     :
   case NAIVEBAYES    :
   case QDACLASS      :
   case C45RULES      :return NULL;
   case QUANTIZEREG   :pqua = safemalloc(sizeof(Quantizereg_parameter), "prepare_supervised_algorithm_parameters", 4);
                       pqua->partitioncount = get_parameter_i("partitioncount");
                       return pqua;
   case KNN           :
   case KNNREG        :pknn = safemalloc(sizeof(Knn_parameter), "prepare_supervised_algorithm_parameters", 6);
                       pknn->nearcount = get_parameter_i("nearcount");
                       return pknn;
   case GPROCESSREG   :pgprocess = safemalloc(sizeof(Gprocess_parameter), "prepare_supervised_algorithm_parameters", 6);
                       pgprocess->sigma = get_parameter_f("sigma");
                       pgprocess->kernel_type = get_parameter_l("kerneltype");
                       pgprocess->coef0 = get_parameter_f("svmcoef0");
                       pgprocess->degree = get_parameter_i("svmdegree");
                       pgprocess->gamma = get_parameter_f("svmgamma");
                       return pgprocess;
   case LDT           :
   case C45           :
   case CART          :
   case KTREE         :pc45 = safemalloc(sizeof(C45_parameter), "prepare_supervised_algorithm_parameters", 9);
                       pc45->prunetype = get_parameter_l("prunetype");
                       pc45->prunemodel = get_parameter_l("prunemodel");
                       pc45->pruningthreshold = get_parameter_f("pruningthreshold");
                       return pc45;
   case RANDOMFOREST  :prf = safemalloc(sizeof(Randomforest_parameter), "prepare_supervised_algorithm_parameters", 12);
                       prf->featuresize = get_parameter_i("featuresize");
                       prf->forestsize = get_parameter_i("forestsize");
                       return prf;
   case KFOREST       :pkf = safemalloc(sizeof(Kforest_parameter), "prepare_supervised_algorithm_parameters", 12);
                       pkf->featuresize = get_parameter_i("featuresize");
                       pkf->forestsize = get_parameter_i("forestsize");
                       pkf->k = get_parameter_i("smallsetsize");
                       return pkf;
   case SVMTREE       :psvmtree = safemalloc(sizeof(Svmtree_parameter), "prepare_supervised_algorithm_parameters", 9);
                       psvmtree->c45param.prunetype = get_parameter_l("prunetype");
                       psvmtree->c45param.pruningthreshold = get_parameter_f("pruningthreshold");
                       psvmtree->multiclasstype = get_parameter_l("multiclasstype");
                       return psvmtree;
   case NBTREE        :pnbtree = safemalloc(sizeof(Nodeboundedtree_parameter), "prepare_supervised_algorithm_parameters", 13);
                       pnbtree->nodecount = get_parameter_i("nodecount");
                       pnbtree->model = get_parameter_l("modelselectionmethod");
                       if (get_parameter_s("model_per_level") != NULL)
                        {
                         if (strlen(get_parameter_s("model_per_level")) > MAX_MODEL_STRING_SIZE)
                           printf(m1338);
                         strcpy(pnbtree->modelstring, get_parameter_s("model_per_level"));
                        }
                       pnbtree->variance_explained = get_parameter_f("variance_explained");
                       pnbtree->prunetype = get_parameter_l("prunetype");    
                       pnbtree->partitioncount = get_parameter_i("partitioncount");
                       pnbtree->usediscrete = get_parameter_o("usediscrete");
                       pnbtree->vccalculationtype = get_parameter_l("vccalculationtype");
                       return pnbtree;
   case LDACLASS      :plda = safemalloc(sizeof(Ldaclass_parameter), "prepare_supervised_algorithm_parameters", 13);
                       plda->variance_explained = get_parameter_f("variance_explained");
                       return plda;
   case LOGISTIC      :plogistic = safemalloc(sizeof(Logistic_parameter), "prepare_supervised_algorithm_parameters", 16);
                       plogistic->etadecrease = get_parameter_f("etadecrease");
                       plogistic->learning_rate = get_parameter_f("learning_rate");
                       plogistic->perceptron_run = get_parameter_i("perceptronrun");
                       return plogistic;
   case IREP          :
   case IREP2         :
   case RIPPER        :
   case MULTIRIPPER   :
   case HYBRIDRIPPER  :
   case REXRIPPER     :prip = safemalloc(sizeof(Ripper_parameter), "prepare_supervised_algorithm_parameters", 16);
                       if (get_parameter_s("classpermutation") != NULL)
                        {
                         if (strlen(get_parameter_s("classpermutation")) > MAX_CLASS_PERMUTATION_SIZE)
                           printf(m1339);
                         strcpy(prip->classpermutation, get_parameter_s("classpermutation"));
                        }
                       else
                         strcpy(prip->classpermutation, "");
                       prip->optimizecount = get_parameter_i("optimizecount");
                       prip->rexenabled = NO;
                       prip->rulesordered = YES;
                       prip->smallset = get_parameter_o("smallset");
                       prip->smallsetsize = get_parameter_i("smallsetsize");
                       prip->usefisher = get_parameter_o("usefisher");
                       prip->withoutoutliers = get_parameter_o("withoutoutliers");
                       prip->confidencelevel = get_parameter_f("confidencelevel");
                       prip->correctiontype = get_parameter_l("correctiontype");
                       prip->conditiontype = UNIVARIATE_CONDITION;
                       prip->modelselectionmethod = get_parameter_l("modelselectionmethod");
                       prip->nearcount = get_parameter_i("nearcount");
                       prip->multivariatealgorithm = get_parameter_l("multivariatealgorithm");
                       prip->variancerange = get_parameter_f("variancerange");
                       prip->variance_explained = get_parameter_f("variance_explained");
                       prip->classorderoptimize = get_parameter_o("classorderoptimize");
                       break;
   case CN2           :pcn2 = safemalloc(sizeof(Cn2_parameter), "prepare_supervised_algorithm_parameters", 31);
                       pcn2->maxstar = get_parameter_i("beamsize");
                       pcn2->confidencelevel = get_parameter_f("confidencelevel");
                       if (get_parameter_s("classpermutation") != NULL)
                        {
                         if (strlen(get_parameter_s("classpermutation")) > MAX_CLASS_PERMUTATION_SIZE)
                           printf(m1339);
                         strcpy(pcn2->classpermutation, get_parameter_s("classpermutation"));
                        }
                       else
                         strcpy(pcn2->classpermutation, "");
                       return pcn2;
                       break;
   case LERILS        :plerils = safemalloc(sizeof(Lerils_parameter), "prepare_supervised_algorithm_parameters", 36);
                       plerils->flip_probability = get_parameter_f("mutationprobability");
                       plerils->pool_size = get_parameter_i("populationsize");
                       plerils->restarts = get_parameter_i("restarts");
                       return plerils;
   case RBF           :
   case RBFREG        :prbf = safemalloc(sizeof(Rbf_parameter), "prepare_supervised_algorithm_parameters", 34);
                       if (current_dataset->classno == 0)
                         prbf->output = 1;
                       else
                         prbf->output = current_dataset->classno;
                       prbf->input = current_dataset->multifeaturecount - 1;
                       prbf->hidden = ((int *) get_parameter_a("hiddennodes"))[0];
                       prbf->epochs = get_parameter_i("perceptronrun");
                       prbf->alpha = get_parameter_f("alpha");
                       prbf->eta = get_parameter_f("learning_rate");
                       prbf->initialeta = prbf->eta;
                       prbf->etadecrease = get_parameter_f("etadecrease");
                       prbf->randrange = 0.01;
                       return prbf;
   case MLPGENERIC    :
   case MLPGENERICREG :pmlp = safemalloc(sizeof(Mlpparameters), "prepare_supervised_algorithm_parameters", 34);
                       *pmlp = prepare_Mlpparameters(NULL, NULL, get_parameter_o("weightdecay"), get_parameter_f("decayalpha"), get_parameter_i("hiddenlayers"), (int *) get_parameter_a("hiddennodes"), 0, 0.0, 0.0, get_parameter_i("maxhidden"), get_algorithm_type(algorithm));
                       return pmlp;
   case DNC           :
   case DNCREG        :pmlp = safemalloc(sizeof(Mlpparameters), "prepare_supervised_algorithm_parameters", 38);
                       *pmlp = prepare_Mlpparameters(NULL, NULL, get_parameter_o("weightdecay"), get_parameter_f("decayalpha"), 1, NULL, get_parameter_i("windowsize"), get_parameter_f("errorthreshold"), get_parameter_f("errordropratio"), get_parameter_i("maxhidden"), get_algorithm_type(algorithm));
                       return pmlp;
   case SVMREGTREE    :
   case REGTREE       :
   case REGSTUMP      :pregtree = safemalloc(sizeof(Regtree_parameter), "prepare_supervised_algorithm_parameters", 37);
                       pregtree->correctiontype = get_parameter_l("correctiontype");
                       pregtree->leaftype = get_parameter_l("leaftype");
                       pregtree->modelselectionmethod = get_parameter_l("modelselectionmethod");
                       pregtree->nearcount = get_parameter_i("nearcount");
                       pregtree->prunetype = get_parameter_l("prunetype");
                       pregtree->pruningthreshold = get_parameter_f("pruningthreshold");
                       pregtree->sigma = get_parameter_f("sigmaestimate");
                       return pregtree;
   case SOFTREGTREE   :
   case SOFTTREE      :
   case SOFTSTUMP     :
   case SOFTREGSTUMP  :psoftregtree = safemalloc(sizeof(Softregtree_parameter), "prepare_supervised_algorithm_parameters", 37);
                       psoftregtree->leaftype = get_parameter_l("leaftype");
                       psoftregtree->epochs = get_parameter_i("perceptronrun");
                       psoftregtree->learningrate = get_parameter_f("learning_rate");
                       psoftregtree->etadecrease = get_parameter_f("etadecrease");
                       psoftregtree->alpha = get_parameter_f("alpha");
                       psoftregtree->regularization = get_parameter_l("regularization");
                       return psoftregtree;
   case REGRULE       :pregrule = safemalloc(sizeof(Regrule_parameter), "prepare_supervised_algorithm_parameters", 45);
                       pregrule->correctiontype = get_parameter_l("correctiontype");
                       pregrule->leaftype = get_parameter_l("leaftype");
                       pregrule->modelselectionmethod = get_parameter_l("modelselectionmethod");
                       pregrule->optimizecount = get_parameter_i("optimizecount");
                       pregrule->sigma = get_parameter_f("sigmaestimate");
                       return pregrule;
   case MULTILDT      :
   case OMNILDT       :pmultildt = safemalloc(sizeof(Multildt_parameter), "prepare_supervised_algorithm_parameters", 45);
                       pmultildt->c45param.prunetype = get_parameter_l("prunetype");
                       pmultildt->c45param.pruningthreshold = get_parameter_f("pruningthreshold");
                       pmultildt->conditiontype = MULTIVARIATE_CONDITION;
                       pmultildt->correctiontype = get_parameter_l("correctiontype");
                       pmultildt->modelselectionmethod = get_parameter_l("modelselectionmethod");
                       pmultildt->variance_explained = get_parameter_f("variance_explained");
                       pmultildt->variancerange = get_parameter_f("variancerange");
                       pmultildt->a1 = get_parameter_f("srma1");
                       pmultildt->a2 = get_parameter_f("srma2");
                       break;
   case SVM           :psvm = safemalloc(sizeof(Svm_parameter), "prepare_supervised_algorithm_parameters", 46);
                       prepare_svm_parameters(psvm, C_SVC);
                       return psvm;
   case SIMPLEXSVM    :
   case SIMPLEXSVMREG :ssvm = safemalloc(sizeof(Svm_simplex_parameter), "prepare_supervised_algorithm_parameters", 46);
                       ssvm->C = get_parameter_f("svmC");
                       ssvm->epsilon = get_parameter_f("svmepsilon");
                       ssvm->kernel.type = get_parameter_l("kerneltype");
                       ssvm->kernel.coef0 = get_parameter_f("svmcoef0");
                       ssvm->kernel.degree = get_parameter_i("svmdegree");
                       ssvm->kernel.gamma = get_parameter_f("svmgamma");
                       return ssvm;
   case SVMREG        :psvm = safemalloc(sizeof(Svm_parameter), "prepare_supervised_algorithm_parameters", 46);
                       prepare_svm_parameters(psvm, EPSILON_SVR);
                       return psvm;
   case HMM           :phmm = safemalloc(sizeof(Hmm_parameter), "prepare_supervised_algorithm_parameters", 64);                      
                       phmm->hmmtype = get_parameter_l("hmmtype");
                       phmm->statetype = get_parameter_l("hmmstatetype");
                       phmm->iteration = get_parameter_i("perceptronrun");
                       phmm->weightfreezing = get_parameter_o("weightfreezing");
                       phmm->learningtype = get_parameter_l("hmmlearningtype");
                       phmm->statecounts = get_parameter_a("statecounts");
                       phmm->componentcounts = get_parameter_a("componentcounts");
                       return phmm;
  }
 switch (algorithm)
  {
   case IREP         :
   case IREP2        :
   case RIPPER       :return prip;
   case MULTIRIPPER  :prip->conditiontype = MULTIVARIATE_CONDITION;
                      prip->multivariatealgorithm = get_parameter_l("multivariatealgorithm");
                      return prip;
   case HYBRIDRIPPER :prip->conditiontype = HYBRID_CONDITION;
                      prip->multivariatealgorithm = get_parameter_l("multivariatealgorithm");
                      return prip;
   case REXRIPPER    :prip->rexenabled = YES;
                      prip->rulesordered = NO;
                      return prip;
   case MULTILDT     :return pmultildt;
   case OMNILDT      :pmultildt->conditiontype = HYBRID_CONDITION;
                      return pmultildt;
  }
 return NULL;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movl %edi, %r14d
xorl %ebx, %ebx
leal -0x3e8(%r14), %eax
cmpl $0x28, %eax
ja 0x5b3a
leaq 0x8f8ff(%rip), %rcx     # 0x953c4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x8fd26(%rip), %rsi     # 0x957fb
pushq $0x60
popq %rdi
pushq $0x10
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8fe0a(%rip), %rdi     # 0x958f4
callq 0x4ce84
testq %rax, %rax
je 0x5c8d
leaq 0x8fdf5(%rip), %rdi     # 0x958f4
callq 0x4ce84
movq %rax, %rdi
callq 0x4190
cmpq $0xc, %rax
jb 0x5b1e
leaq 0x90124(%rip), %rdi     # 0x95c3d
callq 0x4090
leaq 0x8fdcf(%rip), %rdi     # 0x958f4
callq 0x4ce84
movq %rbx, %rdi
movq %rax, %rsi
callq 0x4270
jmp 0x5c90
leal -0x7d0(%r14), %eax
cmpl $0x10, %eax
ja 0x5e0a
leaq 0x8f917(%rip), %rcx     # 0x95468
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x8fc9a(%rip), %rsi     # 0x957fb
pushq $0x28
popq %rdi
pushq $0x25
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8fdc2(%rip), %rdi     # 0x95938
callq 0x4cf11
movl %eax, 0x1c(%rbx)
leaq 0x8fe91(%rip), %rdi     # 0x95a16
callq 0x4cf11
movl %eax, (%rbx)
leaq 0x8fc43(%rip), %rdi     # 0x957d6
callq 0x4cf11
movl %eax, 0x8(%rbx)
leaq 0x8fc90(%rip), %rdi     # 0x95832
callq 0x4cd35
movl %eax, 0x18(%rbx)
leaq 0x8fb81(%rip), %rdi     # 0x95732
callq 0x4cf11
movl %eax, 0x4(%rbx)
leaq 0x8fbc1(%rip), %rdi     # 0x95781
callq 0x4cdcf
movsd %xmm0, 0x10(%rbx)
leaq 0x8fe4e(%rip), %rdi     # 0x95a1f
jmp 0x64f0
leaq 0x8fc1e(%rip), %rsi     # 0x957fb
pushq $0x10
popq %rdi
pushq $0x9
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8fb40(%rip), %rdi     # 0x95732
callq 0x4cf11
movl %eax, (%rbx)
leaq 0x8fc69(%rip), %rdi     # 0x95869
callq 0x4cf11
movl %eax, 0x4(%rbx)
leaq 0x8fb72(%rip), %rdi     # 0x95781
jmp 0x5ea3
leaq 0x8fbe0(%rip), %rsi     # 0x957fb
pushq $0x28
popq %rdi
pushq $0x25
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8fde6(%rip), %rdi     # 0x95a16
callq 0x4cf11
movl %eax, (%rbx)
leaq 0x8fca8(%rip), %rdi     # 0x958e6
callq 0x4cd35
movl %eax, 0x4(%rbx)
leaq 0x8fc8b(%rip), %rdi     # 0x958d8
callq 0x4cdcf
movsd %xmm0, 0x8(%rbx)
leaq 0x8fc6e(%rip), %rdi     # 0x958cc
callq 0x4cdcf
movsd %xmm0, 0x10(%rbx)
leaq 0x8fd61(%rip), %rdi     # 0x959d0
callq 0x4cdcf
movsd %xmm0, 0x18(%rbx)
leaq 0x8fdad(%rip), %rdi     # 0x95a2d
callq 0x4cf11
movl %eax, 0x20(%rbx)
jmp 0x65aa
movb $0x0, (%rbx)
leaq 0x8fb31(%rip), %rdi     # 0x957c8
callq 0x4cd35
movl %eax, 0x10(%rbx)
andl $0x0, 0x24(%rbx)
movl $0x1, 0xc(%rbx)
leaq 0x8fc54(%rip), %rdi     # 0x95905
callq 0x4cff1
movl %eax, 0x18(%rbx)
leaq 0x8fbb4(%rip), %rdi     # 0x95874
callq 0x4cd35
movl %eax, 0x1c(%rbx)
leaq 0x8fc3f(%rip), %rdi     # 0x9590e
callq 0x4cff1
movl %eax, 0x14(%rbx)
leaq 0x8fc3a(%rip), %rdi     # 0x95918
callq 0x4cff1
movl %eax, 0x20(%rbx)
leaq 0x8fc3b(%rip), %rdi     # 0x95928
callq 0x4cdcf
movsd %xmm0, 0x30(%rbx)
leaq 0x8fc3a(%rip), %rdi     # 0x95938
callq 0x4cf11
movl %eax, 0x3c(%rbx)
andl $0x0, 0x28(%rbx)
leaq 0x8fac5(%rip), %rdi     # 0x957d6
callq 0x4cf11
movl %eax, 0x38(%rbx)
leaq 0x8fb12(%rip), %rdi     # 0x95832
callq 0x4cd35
movl %eax, 0x40(%rbx)
leaq 0x8fc18(%rip), %rdi     # 0x95947
callq 0x4cf11
movl %eax, 0x2c(%rbx)
leaq 0x8fc1f(%rip), %rdi     # 0x9595d
callq 0x4cdcf
movsd %xmm0, 0x48(%rbx)
leaq 0x8fb4c(%rip), %rdi     # 0x9589b
callq 0x4cdcf
movsd %xmm0, 0x50(%rbx)
leaq 0x8fc0b(%rip), %rdi     # 0x9596b
callq 0x4cff1
movl %eax, 0x58(%rbx)
jmp 0x5e0a
leaq 0x8fa87(%rip), %rsi     # 0x957fb
pushq $0x40
popq %rdi
pushq $0x2d
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8f9a9(%rip), %rdi     # 0x95732
callq 0x4cf11
movl %eax, (%rbx)
leaq 0x8f9ea(%rip), %rdi     # 0x95781
callq 0x4cdcf
movsd %xmm0, 0x8(%rbx)
movl $0x1, 0x2c(%rbx)
leaq 0x8fb89(%rip), %rdi     # 0x95938
callq 0x4cf11
movl %eax, 0x28(%rbx)
leaq 0x8fa18(%rip), %rdi     # 0x957d6
callq 0x4cf11
movl %eax, 0x18(%rbx)
leaq 0x8face(%rip), %rdi     # 0x9589b
callq 0x4cdcf
movsd %xmm0, 0x20(%rbx)
leaq 0x8fb7f(%rip), %rdi     # 0x9595d
callq 0x4cdcf
movsd %xmm0, 0x10(%rbx)
leaq 0x8fc4d(%rip), %rdi     # 0x95a3c
callq 0x4cdcf
movsd %xmm0, 0x30(%rbx)
leaq 0x8fc42(%rip), %rdi     # 0x95a42
callq 0x4cdcf
movsd %xmm0, 0x38(%rbx)
addl $0xfffffc12, %r14d      # imm = 0xFFFFFC12
cmpl $0x9, %r14d
ja 0x6113
leaq 0x8f68a(%rip), %rax     # 0x954ac
movslq (%rax,%r14,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movl $0x1, 0x28(%rbx)
jmp 0x60e3
leaq 0x8f9bd(%rip), %rsi     # 0x957fb
pushq $0x30
popq %rdi
pushq $0x2e
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8f958(%rip), %rdi     # 0x957ab
callq 0x4cdcf
movsd %xmm0, 0x20(%rbx)
leaq 0x8fbe4(%rip), %rdi     # 0x95a48
callq 0x4cdcf
movsd %xmm0, 0x28(%rbx)
leaq 0x8f9cd(%rip), %rdi     # 0x95842
callq 0x4cf11
movl %eax, (%rbx)
leaq 0x8f9ca(%rip), %rdi     # 0x9584d
callq 0x4cdcf
movsd %xmm0, 0x10(%rbx)
leaq 0x8f9c2(%rip), %rdi     # 0x95856
callq 0x4cd35
movl %eax, 0x4(%rbx)
leaq 0x8f9bd(%rip), %rdi     # 0x95860
callq 0x4cdcf
movsd %xmm0, 0x8(%rbx)
jmp 0x65aa
leaq 0x8f942(%rip), %rsi     # 0x957fb
pushq $0x22
popq %rdx
movl $0x90, %edi
callq 0x34f59
movq %rax, %rbx
leaq 0x8faef(%rip), %rdi     # 0x959bf
callq 0x4cff1
movl %eax, %ebp
leaq 0x8faed(%rip), %rdi     # 0x959cb
callq 0x4cdcf
movsd %xmm0, 0x20(%rsp)
leaq 0x8fae6(%rip), %rdi     # 0x959d6
callq 0x4cd35
movl %eax, %r15d
leaq 0x8fab4(%rip), %rdi     # 0x959b3
callq 0x4d088
movq %rax, %r12
leaq 0x8fad5(%rip), %rdi     # 0x959e3
callq 0x4cd35
movl %eax, %r13d
movl %r14d, %edi
callq 0x445c
andl $0x0, (%rsp)
movl %eax, 0x10(%rsp)
movl %r13d, 0x8(%rsp)
leaq 0x38(%rsp), %r14
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %ebp, %ecx
movsd 0x20(%rsp), %xmm0
movl %r15d, %r8d
movq %r12, %r9
jmp 0x6026
leaq 0x8f8a4(%rip), %rsi     # 0x957fb
pushq $0x4
popq %rdi
pushq $0x6
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8f8c6(%rip), %rdi     # 0x95832
jmp 0x651b
leaq 0x8f883(%rip), %rsi     # 0x957fb
pushq $0x26
popq %rdx
movl $0x90, %edi
callq 0x34f59
movq %rax, %rbx
leaq 0x8fa30(%rip), %rdi     # 0x959bf
callq 0x4cff1
movl %eax, %ebp
leaq 0x8fa2e(%rip), %rdi     # 0x959cb
callq 0x4cdcf
movsd %xmm0, 0x20(%rsp)
leaq 0x8fa3e(%rip), %rdi     # 0x959ed
callq 0x4cd35
movl %eax, %r15d
leaq 0x8fa3a(%rip), %rdi     # 0x959f8
callq 0x4cdcf
movsd %xmm0, 0x30(%rsp)
leaq 0x8fa37(%rip), %rdi     # 0x95a07
callq 0x4cdcf
movsd %xmm0, 0x28(%rsp)
leaq 0x8fa01(%rip), %rdi     # 0x959e3
callq 0x4cd35
movl %eax, %r12d
movl %r14d, %edi
callq 0x445c
movl %eax, 0x10(%rsp)
movl %r12d, 0x8(%rsp)
movl %r15d, (%rsp)
leaq 0x38(%rsp), %r14
pushq $0x1
popq %r8
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %ebp, %ecx
movsd 0x20(%rsp), %xmm0
xorl %r9d, %r9d
movsd 0x30(%rsp), %xmm1
movsd 0x28(%rsp), %xmm2
callq 0x3df0e
movl $0x90, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4310
jmp 0x65aa
leaq 0x8f7b4(%rip), %rsi     # 0x957fb
pushq $0x40
popq %rdi
pushq $0x22
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0xc7814(%rip), %rax     # 0xcd870
movq (%rax), %rax
movl 0x10(%rax), %ecx
cmpl $0x1, %ecx
adcl $0x0, %ecx
movl %ecx, (%rbx)
movl 0x1c0(%rax), %eax
decl %eax
movl %eax, 0x8(%rbx)
leaq 0x8f937(%rip), %rdi     # 0x959b3
callq 0x4d088
movl (%rax), %eax
movl %eax, 0x4(%rbx)
leaq 0x8f859(%rip), %rdi     # 0x958e6
callq 0x4cd35
movl %eax, 0xc(%rbx)
leaq 0x8f934(%rip), %rdi     # 0x959d0
callq 0x4cdcf
movsd %xmm0, 0x38(%rbx)
leaq 0x8f82b(%rip), %rdi     # 0x958d8
callq 0x4cdcf
movsd %xmm0, 0x28(%rbx)
movsd %xmm0, 0x18(%rbx)
leaq 0x8f809(%rip), %rdi     # 0x958cc
callq 0x4cdcf
movsd %xmm0, 0x30(%rbx)
movabsq $0x3f847ae147ae147b, %rax # imm = 0x3F847AE147AE147B
jmp 0x6195
movl $0x2, 0x28(%rbx)
leaq 0x8f85d(%rip), %rdi     # 0x95947
callq 0x4cf11
movl %eax, 0x2c(%rbx)
jmp 0x65aa
movl $0x1, 0x24(%rbx)
andl $0x0, 0xc(%rbx)
jmp 0x65aa
movl $0x2, 0x2c(%rbx)
jmp 0x65aa
xorl %ebx, %ebx
jmp 0x65aa
leaq 0x8f6da(%rip), %rsi     # 0x957fb
pushq $0x28
popq %rdi
pushq $0x40
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8f91d(%rip), %rdi     # 0x95a53
callq 0x4cf11
movl %eax, (%rbx)
leaq 0x8f917(%rip), %rdi     # 0x95a5b
callq 0x4cf11
movl %eax, 0x4(%rbx)
leaq 0x8f793(%rip), %rdi     # 0x958e6
callq 0x4cd35
movl %eax, 0x8(%rbx)
leaq 0x8f906(%rip), %rdi     # 0x95a68
callq 0x4cff1
movl %eax, 0xc(%rbx)
leaq 0x8f67a(%rip), %rdi     # 0x957eb
callq 0x4cf11
movl %eax, 0x10(%rbx)
leaq 0x8f8f7(%rip), %rdi     # 0x95a77
callq 0x4d088
movq %rax, 0x18(%rbx)
leaq 0x8f8f3(%rip), %rdi     # 0x95a83
callq 0x4d088
movq %rax, 0x20(%rbx)
jmp 0x65aa
leaq 0x8f656(%rip), %rsi     # 0x957fb
pushq $0x20
popq %rdi
pushq $0x1f
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8f7c4(%rip), %rdi     # 0x9597e
callq 0x4cd35
movl %eax, (%rbx)
leaq 0x8f760(%rip), %rdi     # 0x95928
callq 0x4cdcf
movsd %xmm0, 0x8(%rbx)
leaq 0x8f71b(%rip), %rdi     # 0x958f4
callq 0x4ce84
testq %rax, %rax
je 0x65bf
leaq 0x8f706(%rip), %rdi     # 0x958f4
callq 0x4ce84
movq %rax, %rdi
callq 0x4190
cmpq $0xc, %rax
jb 0x620d
leaq 0x8fa35(%rip), %rdi     # 0x95c3d
callq 0x4090
movq %rbx, %r14
addq $0x10, %r14
leaq 0x8f6d9(%rip), %rdi     # 0x958f4
callq 0x4ce84
movq %r14, %rdi
movq %rax, %rsi
callq 0x4270
jmp 0x65aa
leaq 0x8f5c4(%rip), %rsi     # 0x957fb
pushq $0x58
popq %rdi
pushq $0x2e
popq %rdx
callq 0x34f59
movq %rax, %rbx
movq %rax, %rdi
xorl %esi, %esi
jmp 0x65a5
leaq 0x8f5a5(%rip), %rsi     # 0x957fb
pushq $0x8
popq %rdi
pushq $0xd
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8f630(%rip), %rdi     # 0x9589b
callq 0x4cdcf
movsd %xmm0, (%rbx)
jmp 0x65aa
leaq 0x8f57b(%rip), %rsi     # 0x957fb
pushq $0x18
popq %rdi
pushq $0x10
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8f637(%rip), %rdi     # 0x958cc
callq 0x4cdcf
movsd %xmm0, 0x10(%rbx)
leaq 0x8f632(%rip), %rdi     # 0x958d8
callq 0x4cdcf
movsd %xmm0, 0x8(%rbx)
leaq 0x8f62f(%rip), %rdi     # 0x958e6
jmp 0x651b
leaq 0x8f538(%rip), %rsi     # 0x957fb
pushq $0x8
popq %rdi
pushq $0xc
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8f4c7(%rip), %rdi     # 0x9579f
callq 0x4cd35
movl %eax, 0x4(%rbx)
leaq 0x8f3ef(%rip), %rdi     # 0x956d6
jmp 0x651b
leaq 0x8f508(%rip), %rsi     # 0x957fb
pushq $0xd
popq %rdx
movl $0x98, %edi
callq 0x34f59
movq %rax, %rbx
leaq 0x8f577(%rip), %rdi     # 0x95881
callq 0x4cd35
movl %eax, (%rbx)
leaq 0x8f4be(%rip), %rdi     # 0x957d6
callq 0x4cf11
movl %eax, 0x8(%rbx)
leaq 0x8f564(%rip), %rdi     # 0x9588b
callq 0x4ce84
testq %rax, %rax
je 0x6375
leaq 0x8f553(%rip), %rdi     # 0x9588b
callq 0x4ce84
movq %rax, %rdi
callq 0x4190
cmpq $0x65, %rax
jb 0x6357
leaq 0x8f928(%rip), %rdi     # 0x95c7a
callq 0x4090
movq %rbx, %r14
addq $0x30, %r14
leaq 0x8f526(%rip), %rdi     # 0x9588b
callq 0x4ce84
movq %r14, %rdi
movq %rax, %rsi
callq 0x4270
leaq 0x8f51f(%rip), %rdi     # 0x9589b
callq 0x4cdcf
movsd %xmm0, 0x28(%rbx)
leaq 0x8f3a5(%rip), %rdi     # 0x95732
callq 0x4cf11
movl %eax, 0x14(%rbx)
leaq 0x8f487(%rip), %rdi     # 0x95823
callq 0x4cd35
movl %eax, 0x4(%rbx)
leaq 0x8f503(%rip), %rdi     # 0x958ae
callq 0x4cff1
movl %eax, 0xc(%rbx)
leaq 0x8f500(%rip), %rdi     # 0x958ba
jmp 0x6440
leaq 0x8f435(%rip), %rsi     # 0x957fb
pushq $0xc
popq %rdi
pushq $0xc
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8f3c4(%rip), %rdi     # 0x9579f
callq 0x4cd35
movl %eax, 0x4(%rbx)
leaq 0x8f2ec(%rip), %rdi     # 0x956d6
callq 0x4cd35
movl %eax, (%rbx)
leaq 0x8f47c(%rip), %rdi     # 0x95874
callq 0x4cd35
movl %eax, 0x8(%rbx)
jmp 0x65aa
leaq 0x8f3ef(%rip), %rsi     # 0x957fb
pushq $0x18
popq %rdi
pushq $0x9
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8f311(%rip), %rdi     # 0x95732
callq 0x4cf11
movl %eax, (%rbx)
leaq 0x8f352(%rip), %rdi     # 0x95781
callq 0x4cdcf
movsd %xmm0, 0x8(%rbx)
leaq 0x8f2a1(%rip), %rdi     # 0x956e1
callq 0x4cf11
movl %eax, 0x10(%rbx)
jmp 0x65aa
leaq 0x8f3a7(%rip), %rsi     # 0x957fb
pushq $0x10
popq %rdi
pushq $0x24
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8f51e(%rip), %rdi     # 0x95987
callq 0x4cdcf
movsd %xmm0, (%rbx)
leaq 0x8f522(%rip), %rdi     # 0x9599b
callq 0x4cd35
movl %eax, 0x8(%rbx)
leaq 0x8f522(%rip), %rdi     # 0x959aa
callq 0x4cd35
movl %eax, 0xc(%rbx)
jmp 0x65aa
leaq 0x8f35f(%rip), %rsi     # 0x957fb
pushq $0x28
popq %rdi
pushq $0x6
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8f38b(%rip), %rdi     # 0x9583c
callq 0x4cdcf
movsd %xmm0, (%rbx)
leaq 0x8f381(%rip), %rdi     # 0x95842
callq 0x4cf11
movl %eax, 0x8(%rbx)
leaq 0x8f37d(%rip), %rdi     # 0x9584d
callq 0x4cdcf
movsd %xmm0, 0x10(%rbx)
leaq 0x8f375(%rip), %rdi     # 0x95856
callq 0x4cd35
movl %eax, 0x18(%rbx)
leaq 0x8f370(%rip), %rdi     # 0x95860
callq 0x4cdcf
movsd %xmm0, 0x20(%rbx)
jmp 0x65aa
leaq 0x8f2f5(%rip), %rsi     # 0x957fb
pushq $0x4
popq %rdi
pushq $0x4
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8f308(%rip), %rdi     # 0x95823
callq 0x4cd35
movl %eax, (%rbx)
jmp 0x65aa
leaq 0x8f2cd(%rip), %rsi     # 0x957fb
pushq $0x18
popq %rdi
pushq $0x2d
popq %rdx
callq 0x34f59
movq %rax, %rbx
leaq 0x8f3f5(%rip), %rdi     # 0x95938
callq 0x4cf11
movl %eax, 0xc(%rbx)
leaq 0x8f4c4(%rip), %rdi     # 0x95a16
callq 0x4cf11
movl %eax, (%rbx)
leaq 0x8f276(%rip), %rdi     # 0x957d6
callq 0x4cf11
movl %eax, 0x4(%rbx)
leaq 0x8f259(%rip), %rdi     # 0x957c8
callq 0x4cd35
movl %eax, 0x8(%rbx)
leaq 0x8f4a1(%rip), %rdi     # 0x95a1f
callq 0x4cdcf
movsd %xmm0, 0x10(%rbx)
jmp 0x65aa
leaq 0x8f26a(%rip), %rsi     # 0x957fb
pushq $0x58
popq %rdi
pushq $0x2e
popq %rdx
callq 0x34f59
movq %rax, %rbx
pushq $0x3
popq %rsi
movq %rax, %rdi
callq 0x85c92
movq %rbx, %rax
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movb $0x0, 0x10(%rbx)
jmp 0x65aa