// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/tests.c
// Function: range_tests
char* range_tests(char **files, int filecount, TEST_TYPE testtype, int* bestindex, int* caseno, char* newst)
{
 /*Last Changed 25.10.2004 updated the best search*/
 /*Last Changed 21.10.2004 added sort_two_arrays*/
 /*Last Changed 02.02.2004 added safemalloc*/
 /*Last Changed 05.05.2002*/
 /*Last Changed 14.08.2003 Added bestindex to represent best algorithm*/
 FILE *myfile;
 int treatments=0,*counts=NULL, i, j, k, m, p, *indexes, **lines,linecount = 0, found, **significance;
 double **observations=NULL, *means, multiplier, mse, sse=0.0, diff, confidence, n, test_result;
 char* st=NULL, ch;
 char tempst1[100],tst[100];
 switch (testtype)
  {
   case NEWMANKEULS:confidence= 1 - get_parameter_f("confidencelevel");
                    break;
   case DUNCAN     :confidence= 1 - pow(get_parameter_f("confidencelevel"), filecount-1);
                    break;
   default         :printf("This test type is not supported for range tests\n");
                    break;
  }
 while (files[treatments])
  {
   treatments++;
   counts=alloc(counts,treatments*sizeof(int),treatments);
   observations=alloc(observations,treatments*sizeof(double *),treatments);
   counts[treatments-1]=file_length(files[treatments-1]);
   observations[treatments-1]=(double *)safemalloc(counts[treatments-1]*sizeof(double), "range_tests", 19);
   if ((myfile=fopen(files[treatments-1],"r"))==NULL)
    {
     printf(m1274, files[treatments-1]);
     return 0;
    }
   for (i=0;i<counts[treatments-1];i++)
     fscanf(myfile,"%lf",&observations[treatments-1][i]);
   fclose(myfile);
  }
 significance = (int **)safecalloc_2d(sizeof(int *), sizeof(int), treatments, treatments, "range_tests", 29);
 for (i = 0; i < treatments; i++)
   for (j = i + 1; j < treatments; j++)
     significance[i][j] = 1;
 means = (double *)safemalloc(treatments*sizeof(double), "range_tests", 33);
 indexes = (int *)safemalloc(treatments*sizeof(int), "range_tests", 34);
 for (i=0;i<treatments;i++)
  {
   indexes[i]=i;
   means[i]=0.0;
   for (j=0;j<counts[i];j++)
     means[i]+=observations[i][j];
   means[i]/=counts[i];
  }
 for (i=0;i<treatments;i++)
   for (j=0;j<counts[i];j++)
     sse+=pow(observations[i][j]-means[i],2);
 sort_two_arrays(means, indexes, treatments);
 if (!get_parameter_o("texoutput"))
  {
   strcpy(tempst1, "");
   for (i = 0; i < treatments; i++)
     sprintf(tempst1, "%s%c", tempst1, indexes[i] + '1');
   sprintf(tempst1, "%s:", tempst1);
  }
 mse=sse/(treatments*(counts[0]-1));
 free_2d((void**)observations, treatments);
 n=counts[0];
 safe_free(counts);
 multiplier=sqrt(mse/n);
 for (i=0;i<filecount-1;i++)
   for (j=0;j<=i;j++)
    {
     found = 0;
     for (k=0; k<linecount; k++)
       if (j >= lines[k][0] && (filecount-1+j-i) <= lines[k][1])
        {
         found = 1;
         break;
        }
     if (found)
       continue;
     diff=means[filecount-1+j-i]-means[j];
     switch (testtype)
      {
       case NEWMANKEULS:
       case DUNCAN     :test_result=studentized_range_inverse(confidence,filecount*(n-1),filecount-i);
                        break;
       default         :printf("This test type is not supported for range tests\n");
                        break;
      }
     if (diff<(multiplier*test_result))
      {
       linecount++;
       lines = (int **) alloc(lines, linecount * sizeof(int *), linecount);
       lines[linecount-1] = (int *)safemalloc(2*sizeof(int), "range_tests", 85);
       lines[linecount-1][0] = j;
       lines[linecount-1][1] = filecount-1+j-i;
       for (k = j; k <= filecount-1+j-i; k++)
         for (m = k + 1; m <= filecount-1+j-i; m++)
           if (indexes[k] < indexes[m])
             significance[indexes[k]][indexes[m]] = 0;
           else
             significance[indexes[m]][indexes[k]] = 0;
      }
    }
 /*Find the best*/
 found = -1;
 for (k = 0; k < linecount; k++)
   if (lines[k][0] == 0)
    {
     found = k;
     break;
    }
 if (found == -1)
  {
   *bestindex = indexes[0];
   *caseno = 1;
  }
 else
  {
   *caseno = 2;
   *bestindex = indexes[lines[found][0]];
   for (k = lines[found][0] + 1; k <= lines[found][1]; k++)
     if (indexes[k] < *bestindex)
       *bestindex = indexes[k];
   for (k = 0; k < linecount; k++)
    {
     if (k == found)
       continue;
     j = 0;
     for (m = lines[k][0]; m <= lines[k][1]; m++)
       if (indexes[m] == *bestindex)
        {
         j = 1;
         break;
        }
     if (j)
      {
       for (m = lines[k][0]; m <= lines[k][1]; m++)
         if (indexes[m] < *bestindex)
          {
           *bestindex = -1;
           break;
          }
       *caseno = 4;
      }
     if (*bestindex == -1)
      {
       *caseno = 5;
       break;
      }
    }
  }
 if (*caseno == 2)
   for (k = lines[found][0]; k <= lines[found][1]; k++)
     if (*caseno != 3 && indexes[k] != *bestindex)
       for (p = 0; p < linecount; p++)
         if (*caseno != 3 && p != found)
           for (m = lines[p][0]; m <= lines[p][1]; m++)         
             if (indexes[m] == indexes[k])
               *caseno = 3;
 if (*bestindex != -1)
   (*bestindex)++;
 for (i = 0; i < linecount; i++)
  {
   sprintf(tst, "%s", "");
   for (j = lines[i][0]; j <= lines[i][1]; j++)
    {
     sprintf(tst,"%s%c",tst,'1'+indexes[j]);
    }
   for (k = 0; k < lines[i][1]-lines[i][0]+1; k++)
     for (m = k + 1; m < lines[i][1]-lines[i][0]+1; m++)
       if (tst[k]>tst[m])
        {
         ch = tst[k];
         tst[k] = tst[m];
         tst[m] = ch;
        }
   strcat(tempst1,tst);
   if (i != linecount-1)
     strcat(tempst1,"-");
  }
 for (k = 0; k < treatments; k++)
   for (m = k + 1; m < treatments; m++)
     if (significance[k][m])
       sprintf(newst,"%s%c%c-",newst,k+'1',m+'1');
 free_2d((void**)significance, treatments);
 if (linecount > 0)
   free_2d((void**)lines, linecount);
 safe_free(means);
 safe_free(indexes);
 st=strcopy(st,tempst1);
 return st;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1c0, %rsp            # imm = 0x1C0
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movl $0x0, -0x3c(%rbp)
movq $0x0, -0x48(%rbp)
movl $0x0, -0x74(%rbp)
movq $0x0, -0x88(%rbp)
movq $0x0, -0xa8(%rbp)
movq $0x0, -0xd0(%rbp)
movl -0x18(%rbp), %eax
movl %eax, -0x1b4(%rbp)
subl $0x4, %eax
je 0xd6615
jmp 0xd6608
movl -0x1b4(%rbp), %eax
subl $0x5, %eax
je 0xd663a
jmp 0xd666e
leaq 0xc081(%rip), %rdi      # 0xe269d
callq 0x79040
movaps %xmm0, %xmm1
movsd 0xb9ec(%rip), %xmm0     # 0xe2018
subsd %xmm1, %xmm0
movsd %xmm0, -0xb8(%rbp)
jmp 0xd667c
leaq 0xc05c(%rip), %rdi      # 0xe269d
callq 0x79040
movl -0x14(%rbp), %eax
subl $0x1, %eax
cvtsi2sd %eax, %xmm1
callq 0x4290
movaps %xmm0, %xmm1
movsd 0xb9b8(%rip), %xmm0     # 0xe2018
subsd %xmm1, %xmm0
movsd %xmm0, -0xb8(%rbp)
jmp 0xd667c
leaq 0x17e7d(%rip), %rdi     # 0xee4f2
movb $0x0, %al
callq 0x4030
jmp 0xd667e
movq -0x10(%rbp), %rax
movslq -0x3c(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0xd67ee
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
movq -0x48(%rbp), %rdi
movslq -0x3c(%rbp), %rsi
shlq $0x2, %rsi
movl -0x3c(%rbp), %edx
callq 0x52d10
movq %rax, -0x48(%rbp)
movq -0x88(%rbp), %rdi
movslq -0x3c(%rbp), %rsi
shlq $0x3, %rsi
movl -0x3c(%rbp), %edx
callq 0x52d10
movq %rax, -0x88(%rbp)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x50f90
movl %eax, %edx
movq -0x48(%rbp), %rax
movl -0x3c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movq -0x48(%rbp), %rax
movl -0x3c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movslq (%rax,%rcx,4), %rdi
shlq $0x3, %rdi
leaq 0x17e0f(%rip), %rsi     # 0xee523
movl $0x13, %edx
callq 0x52d70
movq %rax, %rdx
movq -0x88(%rbp), %rax
movl -0x3c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x11a59(%rip), %rsi     # 0xe81a6
callq 0x40c0
movq %rax, -0x38(%rbp)
cmpq $0x0, %rax
jne 0xd6788
movq -0x10(%rbp), %rax
movl -0x3c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rsi
leaq 0xc716(%rip), %rdi      # 0xe2e8a
movb $0x0, %al
callq 0x4030
movq $0x0, -0x8(%rbp)
jmp 0xd72cc
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
movq -0x48(%rbp), %rcx
movl -0x3c(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0xd67e0
movq -0x38(%rbp), %rdi
movq -0x88(%rbp), %rax
movl -0x3c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
movslq -0x4c(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdx
leaq 0xfffa(%rip), %rsi      # 0xe67c8
movb $0x0, %al
callq 0x4070
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0xd678f
movq -0x38(%rbp), %rdi
callq 0x4250
jmp 0xd667e
movl -0x3c(%rbp), %edx
movl -0x3c(%rbp), %ecx
movl $0x8, %edi
movl $0x4, %esi
leaq 0x17d1e(%rip), %r8      # 0xee523
movl $0x1d, %r9d
callq 0x52fa0
movq %rax, -0x80(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jge 0xd6863
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jge 0xd6856
movq -0x80(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x50(%rbp), %rcx
movl $0x1, (%rax,%rcx,4)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0xd682c
jmp 0xd6858
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0xd681b
movslq -0x3c(%rbp), %rdi
shlq $0x3, %rdi
leaq 0x17cb1(%rip), %rsi     # 0xee523
movl $0x21, %edx
callq 0x52d70
movq %rax, -0x90(%rbp)
movslq -0x3c(%rbp), %rdi
shlq $0x2, %rdi
leaq 0x17c91(%rip), %rsi     # 0xee523
movl $0x22, %edx
callq 0x52d70
movq %rax, -0x68(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jge 0xd6957
movl -0x4c(%rbp), %edx
movq -0x68(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq -0x90(%rbp), %rax
movslq -0x4c(%rbp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
movq -0x48(%rbp), %rcx
movslq -0x4c(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0xd6923
movq -0x88(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x50(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x90(%rbp), %rax
movslq -0x4c(%rbp), %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0xd68db
movq -0x48(%rbp), %rax
movslq -0x4c(%rbp), %rcx
cvtsi2sdl (%rax,%rcx,4), %xmm1
movq -0x90(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0xd68a7
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jge 0xd69da
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
movq -0x48(%rbp), %rcx
movslq -0x4c(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0xd69cd
movq -0x88(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x50(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x90(%rbp), %rax
movslq -0x4c(%rbp), %rcx
subsd (%rax,%rcx,8), %xmm0
movsd 0xc2f3(%rip), %xmm1     # 0xe2ca0
callq 0x4290
addsd -0xa8(%rbp), %xmm0
movsd %xmm0, -0xa8(%rbp)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0xd696d
jmp 0xd69cf
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0xd695e
movq -0x90(%rbp), %rdi
movq -0x68(%rbp), %rsi
movl -0x3c(%rbp), %edx
callq 0x539d0
leaq 0x1233a(%rip), %rdi     # 0xe8d2e
callq 0x79440
cmpl $0x0, %eax
jne 0xd6a71
leaq -0x140(%rbp), %rdi
leaq 0x175ce(%rip), %rsi     # 0xedfda
callq 0x4220
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jge 0xd6a55
leaq -0x140(%rbp), %rdi
leaq -0x140(%rbp), %rdx
movq -0x68(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movl (%rax,%rcx,4), %ecx
addl $0x31, %ecx
leaq 0xc7ad(%rip), %rsi      # 0xe31f0
movb $0x0, %al
callq 0x4170
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0xd6a18
leaq -0x140(%rbp), %rdi
leaq -0x140(%rbp), %rdx
leaq 0x17ac5(%rip), %rsi     # 0xee52f
movb $0x0, %al
callq 0x4170
movsd -0xa8(%rbp), %xmm0
movl -0x3c(%rbp), %eax
movq -0x48(%rbp), %rcx
movl (%rcx), %ecx
subl $0x1, %ecx
imull %ecx, %eax
cvtsi2sd %eax, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0xa0(%rbp)
movq -0x88(%rbp), %rdi
movl -0x3c(%rbp), %esi
callq 0x52e20
movq -0x48(%rbp), %rax
cvtsi2sdl (%rax), %xmm0
movsd %xmm0, -0xc0(%rbp)
movq -0x48(%rbp), %rdi
callq 0x52e80
movsd -0xa0(%rbp), %xmm0
divsd -0xc0(%rbp), %xmm0
callq 0x42a0
movsd %xmm0, -0x98(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
movl -0x14(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0xd6d80
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jg 0xd6d70
movl $0x0, -0x78(%rbp)
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
cmpl -0x74(%rbp), %eax
jge 0xd6b64
movl -0x50(%rbp), %eax
movq -0x70(%rbp), %rcx
movslq -0x54(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpl (%rcx), %eax
jl 0xd6b57
movl -0x14(%rbp), %eax
subl $0x1, %eax
addl -0x50(%rbp), %eax
subl -0x4c(%rbp), %eax
movq -0x70(%rbp), %rcx
movslq -0x54(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpl 0x4(%rcx), %eax
jg 0xd6b57
movl $0x1, -0x78(%rbp)
jmp 0xd6b64
jmp 0xd6b59
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0xd6b16
cmpl $0x0, -0x78(%rbp)
je 0xd6b6f
jmp 0xd6d62
movq -0x90(%rbp), %rax
movl -0x14(%rbp), %esi
movslq -0x50(%rbp), %rcx
movl %ecx, %edx
addl %edx, %esi
movl -0x4c(%rbp), %edx
notl %edx
addl %esi, %edx
movslq %edx, %rdx
movsd (%rax,%rdx,8), %xmm0
movsd (%rax,%rcx,8), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, -0xb0(%rbp)
movl -0x18(%rbp), %eax
addl $-0x4, %eax
subl $0x1, %eax
ja 0xd6bec
jmp 0xd6bae
movsd -0xb8(%rbp), %xmm0
cvtsi2sdl -0x14(%rbp), %xmm1
movsd -0xc0(%rbp), %xmm2
movsd 0xb44d(%rip), %xmm3     # 0xe2018
subsd %xmm3, %xmm2
mulsd %xmm2, %xmm1
movl -0x14(%rbp), %eax
subl -0x4c(%rbp), %eax
cvtsi2sd %eax, %xmm2
callq 0x2f0a0
movsd %xmm0, -0xc8(%rbp)
jmp 0xd6bfa
leaq 0x178ff(%rip), %rdi     # 0xee4f2
movb $0x0, %al
callq 0x4030
movsd -0xb0(%rbp), %xmm1
movsd -0x98(%rbp), %xmm0
mulsd -0xc8(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0xd6d60
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
movq -0x70(%rbp), %rdi
movslq -0x74(%rbp), %rsi
shlq $0x3, %rsi
movl -0x74(%rbp), %edx
callq 0x52d10
movq %rax, -0x70(%rbp)
movl $0x8, %edi
leaq 0x178da(%rip), %rsi     # 0xee523
movl $0x55, %edx
callq 0x52d70
movq %rax, %rdx
movq -0x70(%rbp), %rax
movl -0x74(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x50(%rbp), %ecx
movq -0x70(%rbp), %rax
movl -0x74(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movq (%rax,%rdx,8), %rax
movl %ecx, (%rax)
movl -0x14(%rbp), %ecx
subl $0x1, %ecx
addl -0x50(%rbp), %ecx
subl -0x4c(%rbp), %ecx
movq -0x70(%rbp), %rax
movl -0x74(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movq (%rax,%rdx,8), %rax
movl %ecx, 0x4(%rax)
movl -0x50(%rbp), %eax
movl %eax, -0x54(%rbp)
movl -0x54(%rbp), %eax
movl -0x14(%rbp), %ecx
subl $0x1, %ecx
addl -0x50(%rbp), %ecx
subl -0x4c(%rbp), %ecx
cmpl %ecx, %eax
jg 0xd6d5e
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %eax
movl -0x14(%rbp), %ecx
subl $0x1, %ecx
addl -0x50(%rbp), %ecx
subl -0x4c(%rbp), %ecx
cmpl %ecx, %eax
jg 0xd6d4e
movq -0x68(%rbp), %rax
movslq -0x54(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movq -0x68(%rbp), %rcx
movslq -0x58(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0xd6d17
movq -0x80(%rbp), %rax
movq -0x68(%rbp), %rcx
movslq -0x54(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
movq (%rax,%rcx,8), %rax
movq -0x68(%rbp), %rcx
movslq -0x58(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
movl $0x0, (%rax,%rcx,4)
jmp 0xd6d3e
movq -0x80(%rbp), %rax
movq -0x68(%rbp), %rcx
movslq -0x58(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
movq (%rax,%rcx,8), %rax
movq -0x68(%rbp), %rcx
movslq -0x54(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
movl $0x0, (%rax,%rcx,4)
jmp 0xd6d40
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
jmp 0xd6cc3
jmp 0xd6d50
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0xd6ca3
jmp 0xd6d60
jmp 0xd6d62
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0xd6afc
jmp 0xd6d72
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0xd6ae4
movl $0xffffffff, -0x78(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
cmpl -0x74(%rbp), %eax
jge 0xd6dbc
movq -0x70(%rbp), %rax
movslq -0x54(%rbp), %rcx
movq (%rax,%rcx,8), %rax
cmpl $0x0, (%rax)
jne 0xd6daf
movl -0x54(%rbp), %eax
movl %eax, -0x78(%rbp)
jmp 0xd6dbc
jmp 0xd6db1
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0xd6d8e
cmpl $-0x1, -0x78(%rbp)
jne 0xd6ddd
movq -0x68(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x28(%rbp), %rax
movl $0x1, (%rax)
jmp 0xd6f59
movq -0x28(%rbp), %rax
movl $0x2, (%rax)
movq -0x68(%rbp), %rax
movq -0x70(%rbp), %rcx
movslq -0x78(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movslq (%rcx), %rcx
movl (%rax,%rcx,4), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x70(%rbp), %rax
movslq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl (%rax), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
movl -0x54(%rbp), %eax
movq -0x70(%rbp), %rcx
movslq -0x78(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpl 0x4(%rcx), %eax
jg 0xd6e5c
movq -0x68(%rbp), %rax
movslq -0x54(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movq -0x20(%rbp), %rcx
cmpl (%rcx), %eax
jge 0xd6e4f
movq -0x68(%rbp), %rax
movslq -0x54(%rbp), %rcx
movl (%rax,%rcx,4), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
jmp 0xd6e51
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0xd6e17
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
cmpl -0x74(%rbp), %eax
jge 0xd6f57
movl -0x54(%rbp), %eax
cmpl -0x78(%rbp), %eax
jne 0xd6e7c
jmp 0xd6f49
movl $0x0, -0x50(%rbp)
movq -0x70(%rbp), %rax
movslq -0x54(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl (%rax), %eax
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %eax
movq -0x70(%rbp), %rcx
movslq -0x54(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpl 0x4(%rcx), %eax
jg 0xd6ed1
movq -0x68(%rbp), %rax
movslq -0x58(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movq -0x20(%rbp), %rcx
cmpl (%rcx), %eax
jne 0xd6ec4
movl $0x1, -0x50(%rbp)
jmp 0xd6ed1
jmp 0xd6ec6
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
jmp 0xd6e94
cmpl $0x0, -0x50(%rbp)
je 0xd6f32
movq -0x70(%rbp), %rax
movslq -0x54(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl (%rax), %eax
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %eax
movq -0x70(%rbp), %rcx
movslq -0x54(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpl 0x4(%rcx), %eax
jg 0xd6f28
movq -0x68(%rbp), %rax
movslq -0x58(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movq -0x20(%rbp), %rcx
cmpl (%rcx), %eax
jge 0xd6f1b
movq -0x20(%rbp), %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
jmp 0xd6f28
jmp 0xd6f1d
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
jmp 0xd6ee8
movq -0x28(%rbp), %rax
movl $0x4, (%rax)
movq -0x20(%rbp), %rax
cmpl $-0x1, (%rax)
jne 0xd6f47
movq -0x28(%rbp), %rax
movl $0x5, (%rax)
jmp 0xd6f57
jmp 0xd6f49
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0xd6e63
jmp 0xd6f59
movq -0x28(%rbp), %rax
cmpl $0x2, (%rax)
jne 0xd704a
movq -0x70(%rbp), %rax
movslq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl (%rax), %eax
movl %eax, -0x54(%rbp)
movl -0x54(%rbp), %eax
movq -0x70(%rbp), %rcx
movslq -0x78(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpl 0x4(%rcx), %eax
jg 0xd7048
movq -0x28(%rbp), %rax
cmpl $0x3, (%rax)
je 0xd7038
movq -0x68(%rbp), %rax
movslq -0x54(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movq -0x20(%rbp), %rcx
cmpl (%rcx), %eax
je 0xd7038
movl $0x0, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
cmpl -0x74(%rbp), %eax
jge 0xd7036
movq -0x28(%rbp), %rax
cmpl $0x3, (%rax)
je 0xd7029
movl -0x5c(%rbp), %eax
cmpl -0x78(%rbp), %eax
je 0xd7029
movq -0x70(%rbp), %rax
movslq -0x5c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl (%rax), %eax
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %eax
movq -0x70(%rbp), %rcx
movslq -0x5c(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpl 0x4(%rcx), %eax
jg 0xd7027
movq -0x68(%rbp), %rax
movslq -0x58(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movq -0x68(%rbp), %rcx
movslq -0x54(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jne 0xd701a
movq -0x28(%rbp), %rax
movl $0x3, (%rax)
jmp 0xd701c
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
jmp 0xd6fe4
jmp 0xd7029
jmp 0xd702b
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0xd6fba
jmp 0xd7038
jmp 0xd703a
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0xd6f77
jmp 0xd704a
movq -0x20(%rbp), %rax
cmpl $-0x1, (%rax)
je 0xd705e
movq -0x20(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x74(%rbp), %eax
jge 0xd7200
leaq -0x1b0(%rbp), %rdi
leaq 0xda19(%rip), %rsi      # 0xe4a98
leaq 0x16f54(%rip), %rdx     # 0xedfda
movb $0x0, %al
callq 0x4170
movq -0x70(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl (%rax), %eax
movl %eax, -0x50(%rbp)
movl -0x50(%rbp), %eax
movq -0x70(%rbp), %rcx
movslq -0x4c(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpl 0x4(%rcx), %eax
jg 0xd70e7
leaq -0x1b0(%rbp), %rdi
leaq -0x1b0(%rbp), %rdx
movq -0x68(%rbp), %rax
movslq -0x50(%rbp), %rcx
movl (%rax,%rcx,4), %ecx
addl $0x31, %ecx
leaq 0xc11b(%rip), %rsi      # 0xe31f0
movb $0x0, %al
callq 0x4170
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0xd709e
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
movq -0x70(%rbp), %rcx
movslq -0x4c(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movl 0x4(%rcx), %ecx
movq -0x70(%rbp), %rdx
movslq -0x4c(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
subl (%rdx), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0xd71bd
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %eax
movq -0x70(%rbp), %rcx
movslq -0x4c(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movl 0x4(%rcx), %ecx
movq -0x70(%rbp), %rdx
movslq -0x4c(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
subl (%rdx), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0xd71ad
movslq -0x54(%rbp), %rax
movsbl -0x1b0(%rbp,%rax), %eax
movslq -0x58(%rbp), %rcx
movsbl -0x1b0(%rbp,%rcx), %ecx
cmpl %ecx, %eax
jle 0xd719d
movslq -0x54(%rbp), %rax
movb -0x1b0(%rbp,%rax), %al
movb %al, -0xd1(%rbp)
movslq -0x58(%rbp), %rax
movb -0x1b0(%rbp,%rax), %cl
movslq -0x54(%rbp), %rax
movb %cl, -0x1b0(%rbp,%rax)
movb -0xd1(%rbp), %cl
movslq -0x58(%rbp), %rax
movb %cl, -0x1b0(%rbp,%rax)
jmp 0xd719f
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
jmp 0xd7122
jmp 0xd71af
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0xd70ee
leaq -0x140(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x41a0
movl -0x4c(%rbp), %eax
movl -0x74(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
je 0xd71f0
leaq -0x140(%rbp), %rdi
leaq 0xe997(%rip), %rsi      # 0xe5b82
callq 0x41a0
jmp 0xd71f2
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0xd7065
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jge 0xd7274
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jge 0xd7267
movq -0x80(%rbp), %rax
movslq -0x54(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x58(%rbp), %rcx
cmpl $0x0, (%rax,%rcx,4)
je 0xd725a
movq -0x30(%rbp), %rdi
movq -0x30(%rbp), %rdx
movl -0x54(%rbp), %ecx
addl $0x31, %ecx
movl -0x58(%rbp), %r8d
addl $0x31, %r8d
leaq 0x172e0(%rip), %rsi     # 0xee533
movb $0x0, %al
callq 0x4170
jmp 0xd725c
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
jmp 0xd7218
jmp 0xd7269
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0xd7207
movq -0x80(%rbp), %rdi
movl -0x3c(%rbp), %esi
callq 0x52e20
cmpl $0x0, -0x74(%rbp)
jle 0xd7292
movq -0x70(%rbp), %rdi
movl -0x74(%rbp), %esi
callq 0x52e20
movq -0x90(%rbp), %rdi
callq 0x52e80
movq -0x68(%rbp), %rdi
callq 0x52e80
movq -0xd0(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x54ba0
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x1c0, %rsp            # imm = 0x1C0
popq %rbp
retq
nopl (%rax)