LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O3/mateuz[P]MTS-LS1/source/F10.cpp
// Function: F10::compute(double*)
double F10::compute(double*x){
  int i;
  double result=0.0;

  if(Ovector==NULL)
    {
      Ovector = readOvector();
      Pvector = readPermVector();
      r25 = readR(25);
      r50 = readR(50);
      r100 = readR(100);
      s = readS(s_size);
      w = readW(s_size);
    }
  for(i=0;i<dimension;i++)
    {
      anotherz[i]=x[i]-Ovector[i];
    }
  
  // s_size non-separable part with rotation
  int c = 0;
  for (i = 0; i < s_size; i++)
    {
      // cout<<"c="<<c<<", i="<<i<<endl;
      anotherz1 = rotateVector(i, c);
      // cout<<"done rot"<<endl;
      result += w[i] * ackley(anotherz1, s[i]);
      delete []anotherz1;
      // cout<<result<<endl;
    }
  
  return(result);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %rbx
cmpq $0x0, 0x48(%rdi)
jne 0x6dda
movq %rbx, %rdi
callq 0x3bbc
movq %rax, 0x48(%rbx)
movq %rbx, %rdi
callq 0x4728
movq %rax, 0x58(%rbx)
movq %rbx, %rdi
movl $0x19, %esi
callq 0x4c40
movq %rax, 0xd8(%rbx)
movq %rbx, %rdi
movl $0x32, %esi
callq 0x4c40
movq %rax, 0xe0(%rbx)
movq %rbx, %rdi
movl $0x64, %esi
callq 0x4c40
movq %rax, 0xe8(%rbx)
movl 0x3c(%rbx), %esi
movq %rbx, %rdi
callq 0x503c
movq %rax, 0xf0(%rbx)
movl 0x3c(%rbx), %esi
movq %rbx, %rdi
callq 0x52be
movq %rax, 0xf8(%rbx)
movslq 0xb8(%rbx), %rax
testq %rax, %rax
jle 0x6e08
movq 0x48(%rbx), %rcx
movq 0x70(%rbx), %rdx
xorl %esi, %esi
movsd (%r14,%rsi,8), %xmm0
subsd (%rcx,%rsi,8), %xmm0
movsd %xmm0, (%rdx,%rsi,8)
incq %rsi
cmpq %rsi, %rax
jne 0x6df0
movl $0x0, -0x1c(%rbp)
cmpl $0x0, 0x3c(%rbx)
jle 0x6e9b
xorpd %xmm0, %xmm0
xorl %r14d, %r14d
leaq -0x1c(%rbp), %r15
movsd %xmm0, -0x38(%rbp)
movq %rbx, %rdi
movl %r14d, %esi
movq %r15, %rdx
callq 0x553e
movq %rax, 0x78(%rbx)
movq 0xf0(%rbx), %rcx
movq 0xf8(%rbx), %rdx
movsd (%rdx,%r14,8), %xmm0
movsd %xmm0, -0x30(%rbp)
movl (%rcx,%r14,4), %edx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x5e12
movq 0x78(%rbx), %rdi
testq %rdi, %rdi
je 0x6e7b
movsd %xmm0, -0x28(%rbp)
callq 0x3260
movsd -0x28(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
mulsd %xmm0, %xmm1
movsd -0x38(%rbp), %xmm0
addsd %xmm1, %xmm0
incq %r14
movslq 0x3c(%rbx), %rax
cmpq %rax, %r14
jl 0x6e24
jmp 0x6e9f
xorpd %xmm0, %xmm0
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O3/mateuz[P]MTS-LS1/source/F11.cpp
// Function: F11::~F11()
F11::~F11(){
  delete[] Ovector;
  delete[] Pvector;

  delete[] anotherz;
  for (int i = 0; i < 25; ++i)
    {
      delete[] r25[i];
    }
  for (int i = 0; i < 50; ++i)
    {
      delete[] r50[i];
    }
  for (int i = 0; i < 100; ++i)
    {
      delete[] r100[i];
    }
  delete[] r25;
  delete[] r50;
  delete[] r100;
  delete[] s;
  delete[] w;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
leaq 0x7ad5(%rip), %rax      # 0xea10
movq %rax, (%rdi)
movq 0x48(%rdi), %rdi
testq %rdi, %rdi
je 0x6f4c
callq 0x3260
movq 0x58(%rbx), %rdi
testq %rdi, %rdi
je 0x6f5a
callq 0x3260
movq 0x70(%rbx), %rdi
testq %rdi, %rdi
je 0x6f68
callq 0x3260
xorl %r14d, %r14d
movq 0xd8(%rbx), %rax
movq (%rax,%r14,8), %rdi
testq %rdi, %rdi
je 0x6f80
callq 0x3260
incq %r14
cmpq $0x19, %r14
jne 0x6f6b
xorl %r14d, %r14d
movq 0xe0(%rbx), %rax
movq (%rax,%r14,8), %rdi
testq %rdi, %rdi
je 0x6fa1
callq 0x3260
incq %r14
cmpq $0x32, %r14
jne 0x6f8c
xorl %r14d, %r14d
movq 0xe8(%rbx), %rax
movq (%rax,%r14,8), %rdi
testq %rdi, %rdi
je 0x6fc2
callq 0x3260
incq %r14
cmpq $0x64, %r14
jne 0x6fad
movq 0xd8(%rbx), %rdi
testq %rdi, %rdi
je 0x6fdc
callq 0x3260
movq 0xe0(%rbx), %rdi
testq %rdi, %rdi
je 0x6fed
callq 0x3260
movq 0xe8(%rbx), %rdi
testq %rdi, %rdi
je 0x6ffe
callq 0x3260
movq 0xf0(%rbx), %rdi
testq %rdi, %rdi
je 0x700f
callq 0x3260
movq 0xf8(%rbx), %rdi
testq %rdi, %rdi
je 0x7020
callq 0x3260
movq %rbx, %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x3862
// File: /workspace/github_cpp_makefile_star2_O3/mateuz[P]MTS-LS1/source/F12.cpp
// Function: F12::compute(double*)
double F12::compute(double*x){
  int i;
  double result=0.0;

  if(Ovector==NULL)
    {
      Ovector = readOvector();
    }

  for(i=0;i<dimension;i++)
    {
      anotherz[i]=x[i]-Ovector[i];
    }

  result=rosenbrock(anotherz, dimension);
  return(result);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq 0x48(%rdi), %rax
testq %rax, %rax
jne 0x72a0
movq %rbx, %rdi
callq 0x3bbc
movq %rax, 0x48(%rbx)
movslq 0xb8(%rbx), %rdx
movq 0x70(%rbx), %rsi
testq %rdx, %rdx
jle 0x72ca
xorl %ecx, %ecx
movsd (%r14,%rcx,8), %xmm0
subsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rsi,%rcx,8)
incq %rcx
cmpq %rcx, %rdx
jne 0x72b2
movq %rbx, %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x6666
nop
// File: /workspace/github_cpp_makefile_star2_O3/mateuz[P]MTS-LS1/source/F13.cpp
// Function: F13::compute(double*)
double F13::compute(double*x){
  int i;
  double result=0.0;
        
  if(Ovector==NULL)
    {
      Ovector = readOvector();
      Pvector = readPermVector();
      r25 = readR(25);
      r50 = readR(50);
      r100 = readR(100);
      s = readS(s_size);
      w = readW(s_size);
    }
  
  for(i=0;i<dimension;i++)
    {
      anotherz[i]=x[i]-Ovector[i];
    }
  // cout<<"o"<<endl;

  // s_size non-separable part with rotation
  int c = 0;
  for (i = 0; i < s_size; i++)
    {
      // cout<<"c="<<c<<", i="<<i<<endl;
      anotherz1 = rotateVectorConform(i, c);
      // cout<<"done rot"<<endl;
      result += w[i] * schwefel(anotherz1, s[i]);
      delete []anotherz1;
      // cout<<result<<endl;
    }
  
  return(result);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %rbx
cmpq $0x0, 0x48(%rdi)
jne 0x7504
movq %rbx, %rdi
callq 0x3bbc
movq %rax, 0x48(%rbx)
movq %rbx, %rdi
callq 0x4728
movq %rax, 0x58(%rbx)
movq %rbx, %rdi
movl $0x19, %esi
callq 0x4c40
movq %rax, 0xd8(%rbx)
movq %rbx, %rdi
movl $0x32, %esi
callq 0x4c40
movq %rax, 0xe0(%rbx)
movq %rbx, %rdi
movl $0x64, %esi
callq 0x4c40
movq %rax, 0xe8(%rbx)
movl 0x3c(%rbx), %esi
movq %rbx, %rdi
callq 0x503c
movq %rax, 0xf0(%rbx)
movl 0x3c(%rbx), %esi
movq %rbx, %rdi
callq 0x52be
movq %rax, 0xf8(%rbx)
movslq 0xb8(%rbx), %rax
testq %rax, %rax
jle 0x7532
movq 0x48(%rbx), %rcx
movq 0x70(%rbx), %rdx
xorl %esi, %esi
movsd (%r14,%rsi,8), %xmm0
subsd (%rcx,%rsi,8), %xmm0
movsd %xmm0, (%rdx,%rsi,8)
incq %rsi
cmpq %rsi, %rax
jne 0x751a
movl $0x0, -0x1c(%rbp)
cmpl $0x0, 0x3c(%rbx)
jle 0x75c5
xorpd %xmm0, %xmm0
xorl %r14d, %r14d
leaq -0x1c(%rbp), %r15
movsd %xmm0, -0x38(%rbp)
movq %rbx, %rdi
movl %r14d, %esi
movq %r15, %rdx
callq 0x5780
movq %rax, 0x78(%rbx)
movq 0xf0(%rbx), %rcx
movq 0xf8(%rbx), %rdx
movsd (%rdx,%r14,8), %xmm0
movsd %xmm0, -0x30(%rbp)
movl (%rcx,%r14,4), %edx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x6534
movq 0x78(%rbx), %rdi
testq %rdi, %rdi
je 0x75a5
movsd %xmm0, -0x28(%rbp)
callq 0x3260
movsd -0x28(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
mulsd %xmm0, %xmm1
movsd -0x38(%rbp), %xmm0
addsd %xmm1, %xmm0
incq %r14
movslq 0x3c(%rbx), %rax
cmpq %rax, %r14
jl 0x754e
jmp 0x75c9
xorpd %xmm0, %xmm0
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O3/mateuz[P]MTS-LS1/source/F14.cpp
// Function: F14::~F14()
F14::~F14(){
  for (int i = 0; i < s_size; i++)
    {
      free(OvectorVec[i]);
    }
  free(OvectorVec);
  
  delete[] Pvector;
    for (int i = 0; i < 25; ++i)
    {
      delete[] r25[i];
    }
  for (int i = 0; i < 50; ++i)
    {
      delete[] r50[i];
    }
  for (int i = 0; i < 100; ++i)
    {
      delete[] r100[i];
    }
  delete[] r25;
  delete[] r50;
  delete[] r100;
  delete[] s;
  delete[] w;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
leaq 0x74ab(%rip), %rax      # 0xeae8
movq %rax, (%rdi)
cmpl $0x0, 0x3c(%rdi)
jle 0x7662
xorl %r14d, %r14d
movq 0x50(%rbx), %rax
movq (%rax,%r14,8), %rdi
callq 0x3240
incq %r14
movslq 0x3c(%rbx), %rax
cmpq %rax, %r14
jl 0x7649
movq 0x50(%rbx), %rdi
callq 0x3240
movq 0x58(%rbx), %rdi
testq %rdi, %rdi
je 0x7679
callq 0x3260
xorl %r14d, %r14d
movq 0xd8(%rbx), %rax
movq (%rax,%r14,8), %rdi
testq %rdi, %rdi
je 0x7691
callq 0x3260
incq %r14
cmpq $0x19, %r14
jne 0x767c
xorl %r14d, %r14d
movq 0xe0(%rbx), %rax
movq (%rax,%r14,8), %rdi
testq %rdi, %rdi
je 0x76b2
callq 0x3260
incq %r14
cmpq $0x32, %r14
jne 0x769d
xorl %r14d, %r14d
movq 0xe8(%rbx), %rax
movq (%rax,%r14,8), %rdi
testq %rdi, %rdi
je 0x76d3
callq 0x3260
incq %r14
cmpq $0x64, %r14
jne 0x76be
movq 0xd8(%rbx), %rdi
testq %rdi, %rdi
je 0x76ed
callq 0x3260
movq 0xe0(%rbx), %rdi
testq %rdi, %rdi
je 0x76fe
callq 0x3260
movq 0xe8(%rbx), %rdi
testq %rdi, %rdi
je 0x770f
callq 0x3260
movq 0xf0(%rbx), %rdi
testq %rdi, %rdi
je 0x7720
callq 0x3260
movq 0xf8(%rbx), %rdi
testq %rdi, %rdi
je 0x7731
callq 0x3260
movq %rbx, %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x3862
nop
// File: /workspace/github_cpp_makefile_star2_O3/mateuz[P]MTS-LS1/source/F14.cpp
// Function: F14::compute(double*)
double F14::compute(double*x){
  int i;
  double result=0.0;
  
  if(OvectorVec == NULL)
    {
      s = readS(s_size);
      OvectorVec = readOvectorVec();
      // // inspect OvectorVec
      // for (int i = 0; i < s_size; ++i)
      //   {
      //     for (int j=0; j< s[i]; j++)
      //       {
      //         printf("%.1f\t",OvectorVec[i][j]);
      //       }
      //     printf("\n");
      //   }
      Pvector = readPermVector();
      r25 = readR(25);
      r50 = readR(50);
      r100 = readR(100);
      w = readW(s_size);
    }

  // s_size non-separable part with rotation
  int c = 0;
  for (i = 0; i < s_size; i++)
    {
      // cout<<"c="<<c<<", i="<<i<<endl;
      anotherz1 = rotateVectorConflict(i, c, x);
      // cout<<"done rot"<<endl;
      result += w[i] * schwefel(anotherz1, s[i]);
      delete []anotherz1;
      // cout<<result<<endl;
    }
  
  return(result);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rsi, %rbx
movq %rdi, %r14
cmpq $0x0, 0x50(%rdi)
jne 0x77f0
movl 0x3c(%r14), %esi
movq %r14, %rdi
callq 0x503c
movq %rax, 0xf0(%r14)
movq %r14, %rdi
callq 0x3f68
movq %rax, 0x50(%r14)
movq %r14, %rdi
callq 0x4728
movq %rax, 0x58(%r14)
movq %r14, %rdi
movl $0x19, %esi
callq 0x4c40
movq %rax, 0xd8(%r14)
movq %r14, %rdi
movl $0x32, %esi
callq 0x4c40
movq %rax, 0xe0(%r14)
movq %r14, %rdi
movl $0x64, %esi
callq 0x4c40
movq %rax, 0xe8(%r14)
movl 0x3c(%r14), %esi
movq %r14, %rdi
callq 0x52be
movq %rax, 0xf8(%r14)
movl $0x0, -0x24(%rbp)
cmpl $0x0, 0x3c(%r14)
jle 0x7887
xorpd %xmm0, %xmm0
xorl %r15d, %r15d
leaq -0x24(%rbp), %r12
movsd %xmm0, -0x40(%rbp)
movq %r14, %rdi
movl %r15d, %esi
movq %r12, %rdx
movq %rbx, %rcx
callq 0x5966
movq %rax, 0x78(%r14)
movq 0xf0(%r14), %rcx
movq 0xf8(%r14), %rdx
movsd (%rdx,%r15,8), %xmm0
movsd %xmm0, -0x38(%rbp)
movl (%rcx,%r15,4), %edx
movq %r14, %rdi
movq %rax, %rsi
callq 0x6534
movq 0x78(%r14), %rdi
testq %rdi, %rdi
je 0x7867
movsd %xmm0, -0x30(%rbp)
callq 0x3260
movsd -0x30(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
mulsd %xmm0, %xmm1
movsd -0x40(%rbp), %xmm0
addsd %xmm1, %xmm0
incq %r15
movslq 0x3c(%r14), %rax
cmpq %rax, %r15
jl 0x780d
jmp 0x788b
xorpd %xmm0, %xmm0
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O3/mateuz[P]MTS-LS1/source/F15.cpp
// Function: F15::compute(double*)
double F15::compute(double*x){
  int i;
  double result=0.0;

  if(Ovector==NULL)
    {
      Ovector = readOvector();
    }

  for(i=0;i<dimension;i++)
    {
      anotherz[i]=x[i]-Ovector[i];
    }

  result=schwefel(anotherz, dimension);

  return(result);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq 0x48(%rdi), %rax
testq %rax, %rax
jne 0x798c
movq %rbx, %rdi
callq 0x3bbc
movq %rax, 0x48(%rbx)
movslq 0xb8(%rbx), %rdx
movq 0x70(%rbx), %rsi
testq %rdx, %rdx
jle 0x79b6
xorl %ecx, %ecx
movsd (%r14,%rcx,8), %xmm0
subsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rsi,%rcx,8)
incq %rcx
cmpq %rcx, %rdx
jne 0x799e
movq %rbx, %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x6534
nop
// File: /workspace/github_cpp_makefile_star2_O3/mateuz[P]MTS-LS1/source/F2.cpp
// Function: F2::compute(double*)
double F2::compute(double* x){
  int    i;
  double result;

  if(Ovector == NULL) {
    // Ovector = createShiftVector(dimension,minX,maxX);
    Ovector = readOvector();
  }

  for(i = 0; i < dimension; i++) {
    anotherz[i] = x[i] - Ovector[i];
  }
  
  // // T_{osz}
  // transform_osz(anotherz, dimension);
  
  // // T_{asy}^{0.2}
  // transform_asy(anotherz, 0.2);

  // // lambda
  // Lambda(anotherz, 10);

  result = rastrigin(anotherz,dimension);
  return(result);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq 0x48(%rdi), %rax
testq %rax, %rax
jne 0x7ab8
movq %rbx, %rdi
callq 0x3bbc
movq %rax, 0x48(%rbx)
movslq 0xb8(%rbx), %rdx
movq 0x70(%rbx), %rsi
testq %rdx, %rdx
jle 0x7ae2
xorl %ecx, %ecx
movsd (%r14,%rcx,8), %xmm0
subsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rsi,%rcx,8)
incq %rcx
cmpq %rcx, %rdx
jne 0x7aca
movq %rbx, %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x5c0e
nop
// File: /workspace/github_cpp_makefile_star2_O3/mateuz[P]MTS-LS1/source/F3.cpp
// Function: F3::compute(double*)
double F3::compute(double*x){
  int    i;
  double result;

  if(Ovector == NULL) {
    // Ovector = createShiftVector(dimension,minX,maxX);
    Ovector = readOvector();
  }

  for(i = dimension - 1; i >= 0; i--) {
    anotherz[i] = x[i] - Ovector[i];
  }
  
  result = ackley(anotherz,dimension);

  return(result);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
movq 0x48(%rdi), %rax
testq %rax, %rax
jne 0x7be4
movq %rbx, %rdi
callq 0x3bbc
movq %rax, 0x48(%rbx)
movslq 0xb8(%rbx), %rdx
movq 0x70(%rbx), %rsi
testq %rdx, %rdx
jle 0x7c14
leaq 0x1(%rdx), %rcx
movsd -0x10(%r14,%rcx,8), %xmm0
subsd -0x10(%rax,%rcx,8), %xmm0
movsd %xmm0, -0x10(%rsi,%rcx,8)
decq %rcx
cmpq $0x1, %rcx
ja 0x7bf8
movq %rbx, %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x5e12
// File: /workspace/github_cpp_makefile_star2_O3/mateuz[P]MTS-LS1/source/F6.cpp
// Function: F6::F6()
F6::F6():Benchmarks(){
  Ovector = NULL;
  minX = -32;
  maxX = 32;
  ID = 6;
  s_size = 7;
  anotherz = new double[dimension];
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
callq 0x37cc
leaq 0x692a(%rip), %rax      # 0xec98
movq %rax, (%rbx)
movq $0x0, 0x48(%rbx)
movabsq $0x20ffffffe0, %rax     # imm = 0x20FFFFFFE0
movq %rax, 0xb0(%rbx)
movl $0x6, 0x8(%rbx)
movl $0x7, 0x3c(%rbx)
movslq 0xb8(%rbx), %rax
leaq (,%rax,8), %rcx
testq %rax, %rax
movq $-0x1, %rdi
cmovnsq %rcx, %rdi
callq 0x3030
movq %rax, 0x70(%rbx)
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
movq %rbx, %rdi
callq 0x3862
movq %r14, %rdi
callq 0x3320
// File: /workspace/github_cpp_makefile_star2_O3/mateuz[P]MTS-LS1/source/F7.cpp
// Function: F7::~F7()
F7::~F7(){
	delete[] Ovector;
	delete[] Pvector;
        delete[] anotherz;        for (int i = 0; i < 25; ++i)
          {
            delete[] r25[i];
          }
        for (int i = 0; i < 50; ++i)
          {
            delete[] r50[i];
          }
        for (int i = 0; i < 100; ++i)
          {
            delete[] r100[i];
          }
        delete[] r25;
        delete[] r50;
        delete[] r100;
        delete[] s;
        delete[] w;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
leaq 0x655f(%rip), %rax      # 0xece0
movq %rax, (%rdi)
movq 0x48(%rdi), %rdi
testq %rdi, %rdi
je 0x8792
callq 0x3260
movq 0x58(%rbx), %rdi
testq %rdi, %rdi
je 0x87a0
callq 0x3260
movq 0x70(%rbx), %rdi
testq %rdi, %rdi
je 0x87ae
callq 0x3260
xorl %r14d, %r14d
movq 0xd8(%rbx), %rax
movq (%rax,%r14,8), %rdi
testq %rdi, %rdi
je 0x87c6
callq 0x3260
incq %r14
cmpq $0x19, %r14
jne 0x87b1
xorl %r14d, %r14d
movq 0xe0(%rbx), %rax
movq (%rax,%r14,8), %rdi
testq %rdi, %rdi
je 0x87e7
callq 0x3260
incq %r14
cmpq $0x32, %r14
jne 0x87d2
xorl %r14d, %r14d
movq 0xe8(%rbx), %rax
movq (%rax,%r14,8), %rdi
testq %rdi, %rdi
je 0x8808
callq 0x3260
incq %r14
cmpq $0x64, %r14
jne 0x87f3
movq 0xd8(%rbx), %rdi
testq %rdi, %rdi
je 0x8822
callq 0x3260
movq 0xe0(%rbx), %rdi
testq %rdi, %rdi
je 0x8833
callq 0x3260
movq 0xe8(%rbx), %rdi
testq %rdi, %rdi
je 0x8844
callq 0x3260
movq 0xf0(%rbx), %rdi
testq %rdi, %rdi
je 0x8855
callq 0x3260
movq 0xf8(%rbx), %rdi
testq %rdi, %rdi
je 0x8866
callq 0x3260
movq %rbx, %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x3862
// File: /workspace/github_cpp_makefile_star2_O3/mateuz[P]MTS-LS1/source/F8.cpp
// Function: F8::compute(double*)
double F8::compute(double* x){
  int    i;
  double result=0.0;

  if(Ovector == NULL) {
    Ovector = readOvector();
    Pvector = readPermVector();
    r25 = readR(25);
    r50 = readR(50);
    r100 = readR(100);
    s = readS(s_size);
    w = readW(s_size);
  }

  for(i = 0; i < dimension; i++) {
    anotherz[i] = x[i] - Ovector[i];
  }
  
  // s_size non-separable part with rotation
  int c = 0;
  for (i = 0; i < s_size; i++)
    {
      // cout<<"c="<<c<<", i="<<i<<endl;
      anotherz1 = rotateVector(i, c);
      // cout<<"done rot"<<endl;
      result += w[i] * elliptic(anotherz1, s[i]);
      delete []anotherz1;
      // cout<<result<<endl;
    }
  
  return(result);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %rbx
cmpq $0x0, 0x48(%rdi)
jne 0x8cbe
movq %rbx, %rdi
callq 0x3bbc
movq %rax, 0x48(%rbx)
movq %rbx, %rdi
callq 0x4728
movq %rax, 0x58(%rbx)
movq %rbx, %rdi
movl $0x19, %esi
callq 0x4c40
movq %rax, 0xd8(%rbx)
movq %rbx, %rdi
movl $0x32, %esi
callq 0x4c40
movq %rax, 0xe0(%rbx)
movq %rbx, %rdi
movl $0x64, %esi
callq 0x4c40
movq %rax, 0xe8(%rbx)
movl 0x3c(%rbx), %esi
movq %rbx, %rdi
callq 0x503c
movq %rax, 0xf0(%rbx)
movl 0x3c(%rbx), %esi
movq %rbx, %rdi
callq 0x52be
movq %rax, 0xf8(%rbx)
movslq 0xb8(%rbx), %rax
testq %rax, %rax
jle 0x8cec
movq 0x48(%rbx), %rcx
movq 0x70(%rbx), %rdx
xorl %esi, %esi
movsd (%r14,%rsi,8), %xmm0
subsd (%rcx,%rsi,8), %xmm0
movsd %xmm0, (%rdx,%rsi,8)
incq %rsi
cmpq %rsi, %rax
jne 0x8cd4
movl $0x0, -0x1c(%rbp)
cmpl $0x0, 0x3c(%rbx)
jle 0x8d7f
xorpd %xmm0, %xmm0
xorl %r14d, %r14d
leaq -0x1c(%rbp), %r15
movsd %xmm0, -0x38(%rbp)
movq %rbx, %rdi
movl %r14d, %esi
movq %r15, %rdx
callq 0x553e
movq %rax, 0x78(%rbx)
movq 0xf0(%rbx), %rcx
movq 0xf8(%rbx), %rdx
movsd (%rdx,%r14,8), %xmm0
movsd %xmm0, -0x30(%rbp)
movl (%rcx,%r14,4), %edx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x5b76
movq 0x78(%rbx), %rdi
testq %rdi, %rdi
je 0x8d5f
movsd %xmm0, -0x28(%rbp)
callq 0x3260
movsd -0x28(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
mulsd %xmm0, %xmm1
movsd -0x38(%rbp), %xmm0
addsd %xmm1, %xmm0
incq %r14
movslq 0x3c(%rbx), %rax
cmpq %rax, %r14
jl 0x8d08
jmp 0x8d83
xorpd %xmm0, %xmm0
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O3/mateuz[P]MTS-LS1/source/F9.cpp
// Function: F9::compute(double*)
double F9::compute(double*x){
  // int k, i;
  int i;
  double result=0.0;

  if(Ovector==NULL){
    Ovector = readOvector();
    Pvector = readPermVector();
    r25 = readR(25);
    r50 = readR(50);
    r100 = readR(100);
    s = readS(s_size);
    w = readW(s_size);
  }

  for( i=0;i<dimension;i++){
    anotherz[i]=x[i]-Ovector[i];
  }
  
  // s_size non-separable part with rotation
  int c = 0;
  for (i = 0; i < s_size; i++)
    {
      // cout<<"c="<<c<<", i="<<i<<endl;
      anotherz1 = rotateVector(i, c);
      // cout<<"done rot"<<endl;
      result += w[i] * rastrigin(anotherz1, s[i]);
      delete []anotherz1;
      // cout<<result<<endl;
    }


  return(result);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %rbx
cmpq $0x0, 0x48(%rdi)
jne 0x8fbe
movq %rbx, %rdi
callq 0x3bbc
movq %rax, 0x48(%rbx)
movq %rbx, %rdi
callq 0x4728
movq %rax, 0x58(%rbx)
movq %rbx, %rdi
movl $0x19, %esi
callq 0x4c40
movq %rax, 0xd8(%rbx)
movq %rbx, %rdi
movl $0x32, %esi
callq 0x4c40
movq %rax, 0xe0(%rbx)
movq %rbx, %rdi
movl $0x64, %esi
callq 0x4c40
movq %rax, 0xe8(%rbx)
movl 0x3c(%rbx), %esi
movq %rbx, %rdi
callq 0x503c
movq %rax, 0xf0(%rbx)
movl 0x3c(%rbx), %esi
movq %rbx, %rdi
callq 0x52be
movq %rax, 0xf8(%rbx)
movslq 0xb8(%rbx), %rax
testq %rax, %rax
jle 0x8fec
movq 0x48(%rbx), %rcx
movq 0x70(%rbx), %rdx
xorl %esi, %esi
movsd (%r14,%rsi,8), %xmm0
subsd (%rcx,%rsi,8), %xmm0
movsd %xmm0, (%rdx,%rsi,8)
incq %rsi
cmpq %rsi, %rax
jne 0x8fd4
movl $0x0, -0x1c(%rbp)
cmpl $0x0, 0x3c(%rbx)
jle 0x907f
xorpd %xmm0, %xmm0
xorl %r14d, %r14d
leaq -0x1c(%rbp), %r15
movsd %xmm0, -0x38(%rbp)
movq %rbx, %rdi
movl %r14d, %esi
movq %r15, %rdx
callq 0x553e
movq %rax, 0x78(%rbx)
movq 0xf0(%rbx), %rcx
movq 0xf8(%rbx), %rdx
movsd (%rdx,%r14,8), %xmm0
movsd %xmm0, -0x30(%rbp)
movl (%rcx,%r14,4), %edx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x5c0e
movq 0x78(%rbx), %rdi
testq %rdi, %rdi
je 0x905f
movsd %xmm0, -0x28(%rbp)
callq 0x3260
movsd -0x28(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
mulsd %xmm0, %xmm1
movsd -0x38(%rbp), %xmm0
addsd %xmm1, %xmm0
incq %r14
movslq 0x3c(%rbx), %rax
cmpq %rax, %r14
jl 0x9008
jmp 0x9083
xorpd %xmm0, %xmm0
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O3/superyuan[P]refeditor/CLineFields1.cpp
// Function: CLineFields::divide(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&)
int CLineFields::divide(string s, string divisor, vector<string> &field)
{
	field.clear();
	size_t found;
	int start = 0;
	found = s.find(divisor);
	while (found != string::npos){
		field.push_back(s.substr(start,found-start));
		start = found+divisor.length();
		found = s.find(divisor,start);
	}
	field.push_back(s.substr(start,s.length()-start));
	return field.size();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rcx, %rbx
movq %rdx, %r15
movq %rsi, %r14
movq (%rcx), %rsi
movq %rcx, %rdi
callq 0x66a6
movq (%r15), %rsi
movq 0x8(%r15), %rcx
xorl %r12d, %r12d
movq %r14, %rdi
xorl %edx, %edx
callq 0x3390
cmpq $-0x1, %rax
je 0x5e6a
movq %rax, %rbp
xorl %r13d, %r13d
leaq 0x8(%rsp), %r12
movslq %r13d, %rdx
movq %rbp, %rcx
subq %rdx, %rcx
movq %r12, %rdi
movq %r14, %rsi
callq 0x3250
movq %rbx, %rdi
movq %r12, %rsi
callq 0x51f8
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x5e46
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3240
movq (%r15), %rsi
movq 0x8(%r15), %rcx
movq %rbp, %r13
addq %rcx, %r13
movslq %r13d, %rdx
movq %r14, %rdi
callq 0x3390
movq %rax, %rbp
cmpq $-0x1, %rax
jne 0x5e0b
movslq %r13d, %r12
movq 0x8(%r14), %rcx
subq %r12, %rcx
leaq 0x8(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0x3250
movq %rbx, %rdi
movq %r15, %rsi
callq 0x51f8
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5eaa
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3240
movq 0x8(%rbx), %rax
subq (%rbx), %rax
shrq $0x5, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x5edf
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x5ef1
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3240
movq %rbx, %rdi
callq 0x33a0
nop
// File: /workspace/github_cpp_makefile_star2_O3/superyuan[P]refeditor/CLineFields1.cpp
// Function: CLineFields::readline(bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
bool CLineFields::readline (bool ignoreComment, string divisor)
{
	field.clear();
	do {
		getline(*fp, line);
		if (line.length()==0)
			return false;
	} while ((line[0]=='@' || line[0]=='#') &&(ignoreComment)) ;

	divide(line, divisor, field);

	return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x40, %rsp
movq %rdx, %r14
movl %esi, %ebp
movq %rdi, %rbx
movq (%rdi), %rsi
callq 0x66a6
leaq 0x20(%rbx), %r15
movq 0x18(%rbx), %r12
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x3210
movsbl %al, %edx
movq %r12, %rdi
movq %r15, %rsi
callq 0x33e0
movq 0x28(%rbx), %rdx
testq %rdx, %rdx
je 0x60b5
movq (%r15), %rsi
movb (%rsi), %al
cmpb $0x40, %al
je 0x603d
cmpb $0x23, %al
jne 0x6042
testb %bpl, %bpl
jne 0x5ffc
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
addq %rsi, %rdx
leaq 0x20(%rsp), %rdi
callq 0x55a4
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x55a4
leaq 0x20(%rsp), %rsi
movq %rsp, %rdx
movq %rbx, %rcx
callq 0x5dc4
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x609a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3240
movq 0x20(%rsp), %rdi
movb $0x1, %bl
cmpq %r15, %rdi
je 0x60b7
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x3240
jmp 0x60b7
xorl %ebx, %ebx
movl %ebx, %eax
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x60e4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3240
jmp 0x60e4
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x60fb
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x3240
movq %rbx, %rdi
callq 0x33a0
// File: /workspace/github_cpp_makefile_star2_O3/superyuan[P]refeditor/CLineFields1.cpp
// Function: substr2int(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, int&)
int substr2int(string &s, int &p)
{
	//''' convert substring of s started from p to an interger '''
	//''' return the value and the position of last digit + 1 '''
	int sum = 0;
	char c = s[p];

	while (c>='0' && c<='9') {
		sum = sum*10 + c-'0';
		p ++;
		c = s[p];
	}
	return sum;
}

// Assembly:
movslq (%rsi), %r8
movq (%rdi), %rdx
movb (%rdx,%r8), %cl
leal -0x30(%rcx), %edi
xorl %eax, %eax
cmpb $0x9, %dil
ja 0x6143
addq %r8, %rdx
incq %rdx
leal 0x1(%r8), %edi
xorl %eax, %eax
movzbl %cl, %ecx
leal (%rax,%rax,4), %eax
leal (%rcx,%rax,2), %eax
addl $-0x30, %eax
movl %edi, (%rsi)
movb (%rdx), %cl
leal -0x30(%rcx), %r8d
incq %rdx
incl %edi
cmpb $0xa, %r8b
jb 0x6124
retq
// File: /workspace/github_cpp_makefile_star2_O3/superyuan[P]refeditor/CLineFields1.cpp
// Function: pileupShortStr2Info(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::map<char, int, std::less<char>, std::allocator<std::pair<char const, int>>>&)
void pileupShortStr2Info(string &s, map<char,int> &pileupInfo)
{
	int i = 0;
	initPileupInfo(pileupInfo);
	if (s=="NoInfo")
		return;
	while (i<(int)s.length()) {
		int num = substr2int(s, i);
		pileupInfo[s[i]] = num;
		i++;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
xorl %r15d, %r15d
leaq 0x40a1(%rip), %r12      # 0xa230
leaq (%r12,%r15), %rsi
movq %rbx, %rdi
callq 0x658a
movl $0x0, (%rax)
incq %r15
cmpq $0x5, %r15
jne 0x618f
leaq 0x11ea(%rip), %rsi      # 0x739b
movq %r14, %rdi
callq 0x30b0
testl %eax, %eax
je 0x6230
cmpl $0x0, 0x8(%r14)
jle 0x6230
xorl %ebp, %ebp
movabsq $0x100000000, %r15      # imm = 0x100000000
movq (%r14), %rsi
movslq %ebp, %rax
movb (%rsi,%rax), %cl
leal -0x30(%rcx), %edx
cmpb $0x9, %dl
ja 0x6217
leaq (%rsi,%rax), %rdx
incq %rdx
shlq $0x20, %rax
xorl %r12d, %r12d
addq %r15, %rax
movzbl %cl, %ecx
leal (%r12,%r12,4), %edi
leal (%rcx,%rdi,2), %r12d
addl $-0x30, %r12d
movb (%rdx), %cl
leal -0x30(%rcx), %edi
incl %ebp
incq %rdx
cmpb $0xa, %dil
jb 0x61ef
sarq $0x20, %rax
jmp 0x621a
xorl %r12d, %r12d
addq %rax, %rsi
movq %rbx, %rdi
callq 0x658a
movl %r12d, (%rax)
incl %ebp
cmpl 0x8(%r14), %ebp
jl 0x61d0
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O3/superyuan[P]refeditor/CLineFields1.cpp
// Function: pileupInfoMajor(std::map<char, int, std::less<char>, std::allocator<std::pair<char const, int>>>&, float)
char pileupInfoMajor(map<char,int> &pileupInfo, float threadhold)
{
	int total = 0;
	for (int i=0; i<(int)sizeof(keys); i++) {
		if (keys[i]=='N')
			continue; // we don't count 'N' into total
		total += pileupInfo[keys[i]];
	}
	if (total > 0) {
		for (int i=0; i<(int)sizeof(keys); i++) {
			if (keys[i]=='N')
				continue; // we don't count 'N' as majority
			if (((float)pileupInfo[keys[i]])/(float)total>=threadhold)  { //must be >= than threadhold(eg. 80%)
				return keys[i];
			}
		}
	}
	return (char)0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movss %xmm0, 0x4(%rsp)
movq %rdi, %rbx
xorl %r15d, %r15d
leaq 0x3fdd(%rip), %r14      # 0xa230
xorl %ebp, %ebp
cmpb $0x4e, (%r15,%r14)
je 0x626a
leaq (%r14,%r15), %rsi
movq %rbx, %rdi
callq 0x658a
addl (%rax), %ebp
incq %r15
cmpq $0x5, %r15
jne 0x6255
testl %ebp, %ebp
jle 0x62b5
xorps %xmm0, %xmm0
cvtsi2ss %ebp, %xmm0
movss %xmm0, (%rsp)
xorl %r15d, %r15d
cmpb $0x4e, (%r15,%r14)
je 0x62ac
leaq (%r14,%r15), %rsi
movq %rbx, %rdi
callq 0x658a
xorps %xmm0, %xmm0
cvtsi2ssl (%rax), %xmm0
divss (%rsp), %xmm0
ucomiss 0x4(%rsp), %xmm0
jae 0x62b9
incq %r15
cmpq $0x5, %r15
jne 0x6286
xorl %eax, %eax
jmp 0x62bd
movb (%r15,%r14), %al
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O3/superyuan[P]refeditor/CLineFields1.cpp
// Function: pileupLongStr2Info(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, char, std::map<char, int, std::less<char>, std::allocator<std::pair<char const, int>>>&)
void pileupLongStr2Info(string &s, char base, map<char,int>& pileupInfo)
{
	int value;
	int i = 0;
	initPileupInfo(pileupInfo);
	while (i<(int)s.length()) {
		char L = toupper(s[i]);
		if (L=='A' || L=='C' || L=='G' || L=='T' || L=='N')
			pileupInfo[L] += 1;
		else if (L=='.' || L==',')
			pileupInfo[base] += 1;
		else if (L=='+' || L=='-') {
			i ++;
			value = substr2int(s, i);
			i += value-1;
		}
		else if (L=='^')
			i += 1;
		else if (L=='<' || s[i]=='>'|| L=='*')
			pileupInfo['N'] += 1;
		else if (L=='$')
			;
		else {
			cout << "unexpected letter " << s[i];
			exit(-1);
		}
		i += 1;
	}

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rdi, %rbx
movb %sil, 0x7(%rsp)
xorl %r15d, %r15d
leaq 0x3f48(%rip), %r12      # 0xa230
leaq (%r12,%r15), %rsi
movq %r14, %rdi
callq 0x658a
movl $0x0, (%rax)
incq %r15
cmpq $0x5, %r15
jne 0x62e8
cmpl $0x0, 0x8(%rbx)
jle 0x6413
xorl %ebp, %ebp
leaq 0x6(%rsp), %r15
movslq %ebp, %r13
movq (%rbx), %r12
movsbl (%r12,%r13), %edi
callq 0x33f0
movb %al, 0x6(%rsp)
movl %eax, %edx
andl $0xfd, %edx
cmpl $0x41, %edx
jne 0x634e
movq %r14, %rdi
movq %r15, %rsi
callq 0x658a
incl (%rax)
incl %ebp
cmpl 0x8(%rbx), %ebp
jl 0x6314
jmp 0x6413
movl %eax, %ecx
shll $0x18, %ecx
cmpl $0x47000000, %ecx       # imm = 0x47000000
je 0x6335
cmpl $0x54000000, %ecx       # imm = 0x54000000
je 0x6335
cmpl $0x4e000000, %ecx       # imm = 0x4E000000
je 0x6335
cmpl $0x2c, %edx
jne 0x637a
movq %r14, %rdi
leaq 0x7(%rsp), %rsi
jmp 0x633b
cmpl $0x3bffffff, %ecx       # imm = 0x3BFFFFFF
jg 0x63d0
cmpl $0x2b000000, %ecx       # imm = 0x2B000000
je 0x6392
cmpl $0x2d000000, %ecx       # imm = 0x2D000000
jne 0x63e7
movb 0x1(%r12,%r13), %cl
leal -0x30(%rcx), %edx
xorl %eax, %eax
cmpb $0x9, %dl
ja 0x63c9
incq %r13
leaq (%r12,%r13), %rdx
incq %rdx
xorl %eax, %eax
movzbl %cl, %ecx
leal (%rax,%rax,4), %eax
leal (%rcx,%rax,2), %eax
addl $-0x30, %eax
movb (%rdx), %cl
leal -0x30(%rcx), %esi
incl %ebp
incq %rdx
cmpb $0xa, %sil
jb 0x63ad
addl %eax, %ebp
jmp 0x6342
cmpl $0x3c000000, %ecx       # imm = 0x3C000000
je 0x63fc
cmpl $0x5e000000, %ecx       # imm = 0x5E000000
jne 0x63e7
incl %ebp
jmp 0x6342
cmpb $0x2a, %al
je 0x63fc
cmpb $0x3e, (%r12,%r13)
je 0x63fc
cmpb $0x24, %al
je 0x6342
jmp 0x6422
movb $0x4e, 0x5(%rsp)
movq %r14, %rdi
leaq 0x5(%rsp), %rsi
callq 0x65f0
jmp 0x6340
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x3b9f(%rip), %rdi      # 0x9fc8
leaq 0xf72(%rip), %rsi       # 0x73a2
callq 0x3220
movq (%rbx), %rcx
movsbl (%rcx,%r13), %esi
movq %rax, %rdi
callq 0x3280
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x3290
// File: /workspace/github_cpp_makefile_star2_O3/superyuan[P]refeditor/CLineFields1.cpp
// Function: pileupLongStr2ShortStr(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, char)
string pileupLongStr2ShortStr(string &s, char base)
{
	stringstream ss;
	map<char,int> pileupInfo;
	pileupLongStr2Info(s, base, pileupInfo);
	for (int i=0; i<(int)sizeof(keys); i++) {
		if (pileupInfo[keys[i]]>0)
			ss << pileupInfo[keys[i]] << keys[i];
	}
	return ss.str();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movl %edx, %ebp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x40(%rsp), %rdi
callq 0x3190
leaq 0x18(%rsp), %rax
movl $0x0, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movl %ebp, %esi
callq 0x62c8
movq %rbx, 0x8(%rsp)
leaq 0x50(%rsp), %r14
xorl %ebp, %ebp
leaq 0x3d7f(%rip), %rbx      # 0xa230
leaq 0x10(%rsp), %r15
leaq 0x7(%rsp), %r12
leaq (%rbx,%rbp), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x658a
cmpl $0x0, (%rax)
jle 0x64fc
movq %r15, %rdi
movq %r13, %rsi
callq 0x658a
movl (%rax), %esi
movq %r14, %rdi
callq 0x3380
movb (%r13), %cl
movb %cl, 0x7(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x3270
incq %rbp
cmpq $0x5, %rbp
jne 0x64bb
leaq 0x58(%rsp), %rsi
movq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0x3330
leaq 0x10(%rsp), %rdi
callq 0x6656
movq 0x3a78(%rip), %rsi      # 0x9fa0
leaq 0x40(%rsp), %rdi
callq 0x31b0
leaq 0xc0(%rsp), %rdi
callq 0x30d0
movq %rbx, %rax
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x6556
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x6656
movq 0x3a36(%rip), %rsi      # 0x9fa0
leaq 0x40(%rsp), %rdi
callq 0x31b0
leaq 0xc0(%rsp), %rdi
callq 0x30d0
movq %rbx, %rdi
callq 0x33a0
nop
// File: /workspace/github_cpp_makefile_star2_O3/SYZYGYfpga[P]syzygy-tools/include/catch.hpp
// Function: Catch::getResultCapture()
inline IMutableContext& getCurrentMutableContext()
    {
        if( !IMutableContext::currentContext )
            IMutableContext::createContext();
        // NOLINTNEXTLINE(clang-analyzer-core.uninitialized.UndefReturn)
        return *IMutableContext::currentContext;
    }

// Assembly:
pushq %rbx
subq $0x50, %rsp
movq 0x70f8e(%rip), %rdi     # 0x82bf0
testq %rdi, %rdi
je 0x11c6c
movq (%rdi), %rax
jmp 0x11ca0
movl $0x30, %edi
callq 0x104c0
movq %rax, %rdi
leaq 0x6c3e0(%rip), %rax     # 0x7e060
movq %rax, (%rdi)
leaq 0x6c426(%rip), %rcx     # 0x7e0b0
movq %rcx, 0x8(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rdi)
movups %xmm0, 0x20(%rdi)
movq %rdi, 0x70f50(%rip)     # 0x82bf0
callq *0x10(%rax)
testq %rax, %rax
je 0x11cae
addq $0x50, %rsp
popq %rbx
retq
leaq 0x28(%rsp), %rbx
movq %rbx, %rdi
callq 0x220e0
leaq 0x49263(%rip), %rax     # 0x5af25
leaq 0x40(%rsp), %rsi
movq %rax, (%rsi)
movq $0x335f, 0x8(%rsi)      # imm = 0x335F
movq 0x10(%rbx), %rbx
movq %rbx, %rdi
callq 0x17cfb
leaq 0x494b8(%rip), %rsi     # 0x5b19d
movl $0x19, %edx
movq %rbx, %rdi
callq 0x10590
leaq 0x49811(%rip), %rsi     # 0x5b50a
movl $0x1a, %edx
movq %rbx, %rdi
callq 0x10590
addq $0x8, %rbx
leaq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0x10770
leaq 0x8(%rsp), %rdi
callq 0x18b90
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11d3c
callq 0x10480
jmp 0x11d3c
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x22118
movq %rbx, %rdi
callq 0x10880
// File: /workspace/github_cpp_makefile_star2_O3/SYZYGYfpga[P]syzygy-tools/include/catch.hpp
// Function: Catch::cleanupSingletons()
static auto getSingletons() -> std::vector<ISingleton*>*& {
            static std::vector<ISingleton*>* g_singletons = nullptr;
            if( !g_singletons )
                g_singletons = new std::vector<ISingleton*>();
            return g_singletons;
        }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq 0x6575c(%rip), %rbx     # 0x83078
testq %rbx, %rbx
je 0x1d926
movq (%rbx), %r14
jmp 0x1d94b
movl $0x18, %edi
callq 0x104c0
movq %rax, %rbx
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
movq %rax, 0x65730(%rip)     # 0x83078
xorl %r14d, %r14d
movq 0x8(%rbx), %r15
cmpq %r15, %r14
je 0x1d977
movq (%r14), %rdi
testq %rdi, %rdi
je 0x1d962
movq (%rdi), %rax
callq *0x8(%rax)
addq $0x8, %r14
cmpq %r15, %r14
jne 0x1d954
movq 0x65706(%rip), %rbx     # 0x83078
testq %rbx, %rbx
je 0x1d986
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x1d988
callq 0x10480
jmp 0x1d988
xorl %ebx, %ebx
movq %rbx, %rdi
callq 0x10480
movq $0x0, 0x656dd(%rip) # 0x83078
popq %rbx
popq %r14
popq %r15
retq
nop
// File: /workspace/github_cpp_makefile_star2_O3/swxlion[P]swxJson/tests/swxJsonAdvancedTest_fetch_v2.cpp
// Function: main
int main()
{
	test_tuple();
	test_array();
	test_queue();
	test_deque();
	test_list();
	test_vector();
	test_set();
	test_unordered_set();
	test_dict();
	test_unordered_dict();

	return 0;
}

// Assembly:
pushq %rax
callq 0x14243
callq 0x148ce
callq 0x15220
callq 0x1554b
callq 0x15876
callq 0x15ba1
callq 0x15ecc
callq 0x161f7
callq 0x16522
callq 0x1684d
xorl %eax, %eax
popq %rcx
retq
nop
// File: /workspace/github_cpp_makefile_star2_O3/swxlion[P]swxJson/tests/swxJsonAdvancedTest_fetch_v2.cpp
// Function: void test_array<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 3ul>(std::shared_ptr<swxJson::Json>, char const*, char const*, bool)
void test_array(JsonPtr json, const char* key, const char* desc, bool compatibleMode)
{
	cout<<endl<<desc<<endl;

	std::array<K, N> elemArray = json->wantArray<K, N>(key, compatibleMode);
	for (auto& element: elemArray)
		cout<<"Element: "<<element<<endl;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb0, %rsp
movl %ecx, %ebx
movq %rdx, %r13
movq %rsi, %r14
movq %rdi, %r15
movq 0x21ff6(%rip), %r12     # 0x38fd8
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r12, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq %rax, %r12
testq %r13, %r13
je 0x1702a
movq %r13, %rdi
callq 0x130e0
movq %r12, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x132f0
jmp 0x17045
movq (%r12), %rax
movq -0x18(%rax), %rax
movq %r12, %rdi
addq %rax, %rdi
movl 0x20(%r12,%rax), %esi
orl $0x1, %esi
callq 0x13400
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r12, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq (%r15), %r15
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
movq %r14, %rsi
callq 0x16bb0
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x160ad(%rip), %rsi     # 0x2d140
leaq 0x160a8(%rip), %rdx     # 0x2d142
leaq 0x10(%rsp), %rdi
callq 0x19f80
movzbl %bl, %ecx
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
leaq 0x10(%rsp), %r8
movq %r15, %rsi
callq 0x1b4b0
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x170d5
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x132a0
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x170f0
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x132a0
movl $0x8, %r13d
leaq 0xb0(%rsp), %rbx
movq 0x21ed3(%rip), %r14     # 0x38fd8
leaq 0x1651f(%rip), %r15     # 0x2d62b
movl $0x9, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x132f0
movq 0x48(%rsp,%r13), %rsi
movq 0x50(%rsp,%r13), %rdx
movq %r14, %rdi
callq 0x132f0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r12, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
addq $0x20, %r13
cmpq $0x68, %r13
jne 0x1710c
movq $-0x60, %rbx
leaq 0xa0(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x17185
movq (%r14), %rsi
incq %rsi
callq 0x132a0
addq $-0x20, %r14
addq $0x20, %rbx
jne 0x17171
addq $0xb0, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %r14
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x171bf
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x171bf
movq %rax, %r14
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x171f1
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x171f1
movq %rax, %r14
jmp 0x171f1
movq %rax, %r14
leaq 0x50(%rsp), %rsi
movq %rbx, %rdi
callq 0x13470
movq %r14, %rdi
callq 0x13430
// File: /workspace/github_cpp_makefile_star2_O3/swxlion[P]swxJson/tests/swxJsonAdvancedTest_fetch_v2.cpp
// Function: void test_list<int>(std::shared_ptr<swxJson::Json>, char const*, char const*)
void test_list(JsonPtr json, const char* key, const char* desc)
{
	cout<<endl<<desc<<endl;

	std::list<K> elemList = json->wantList<K>(key);
	for (auto& element: elemList)
		cout<<"Element: "<<element<<endl;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x60, %rsp
movq %rdx, %r12
movq %rsi, %rbx
movq %rdi, %r14
movq 0x207fd(%rip), %r15     # 0x38fd8
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq %rax, %r15
testq %r12, %r12
je 0x18822
movq %r12, %rdi
callq 0x130e0
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x132f0
jmp 0x1883c
movq (%r15), %rax
movq -0x18(%rax), %rax
movq %r15, %rdi
addq %rax, %rdi
movl 0x20(%r15,%rax), %esi
orl $0x1, %esi
callq 0x13400
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq (%r14), %r14
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
movq %rbx, %rsi
callq 0x16bb0
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x148b8(%rip), %rsi     # 0x2d140
leaq 0x148b3(%rip), %rdx     # 0x2d142
leaq 0x8(%rsp), %rdi
callq 0x19f80
leaq 0x48(%rsp), %rbx
leaq 0x28(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1dcbc
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x188ca
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x188e5
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x132a0
movq 0x206ec(%rip), %r14     # 0x38fd8
leaq 0x14d38(%rip), %r15     # 0x2d62b
movq %rbx, %r13
movq (%r13), %r13
cmpq %rbx, %r13
je 0x18947
movl $0x9, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x132f0
movl 0x10(%r13), %esi
movq %r14, %rdi
callq 0x13420
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r12, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
jmp 0x188f6
leaq 0x48(%rsp), %rbx
movq (%rbx), %rdi
cmpq %rbx, %rdi
je 0x18969
movq (%rdi), %r14
movl $0x18, %esi
callq 0x132a0
movq %r14, %rdi
cmpq %rbx, %r14
jne 0x18954
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x18996
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x18996
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x189dd
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x189dd
movq %rax, %rbx
jmp 0x189dd
movq %rax, %rbx
leaq 0x48(%rsp), %r14
movq (%r14), %rdi
cmpq %r14, %rdi
je 0x189dd
movq (%rdi), %r15
movl $0x18, %esi
callq 0x132a0
movq %r15, %rdi
cmpq %r14, %r15
jne 0x189c8
movq %rbx, %rdi
callq 0x13430
// File: /workspace/github_cpp_makefile_star2_O3/swxlion[P]swxJson/tests/swxJsonAdvancedTest_fetch_v2.cpp
// Function: void test_vector<int>(std::shared_ptr<swxJson::Json>, char const*, char const*)
void test_vector(JsonPtr json, const char* key, const char* desc)
{
	cout<<endl<<desc<<endl;

	std::vector<K> elemVector = json->wantVector<K>(key);
	for (auto& element: elemVector)
		cout<<"Element: "<<element<<endl;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x60, %rsp
movq %rdx, %r12
movq %rsi, %rbx
movq %rdi, %r14
movq 0x203d3(%rip), %r15     # 0x38fd8
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq %rax, %r15
testq %r12, %r12
je 0x18c4c
movq %r12, %rdi
callq 0x130e0
movq %r15, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x132f0
jmp 0x18c66
movq (%r15), %rax
movq -0x18(%rax), %rax
movq %r15, %rdi
addq %rax, %rdi
movl 0x20(%r15,%rax), %esi
orl $0x1, %esi
callq 0x13400
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r15, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
movq (%r14), %r14
leaq 0x40(%rsp), %rdi
leaq 0x7(%rsp), %rdx
movq %rbx, %rsi
callq 0x16bb0
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1448e(%rip), %rsi     # 0x2d140
leaq 0x14489(%rip), %rdx     # 0x2d142
leaq 0x20(%rsp), %rdi
callq 0x19f80
leaq 0x8(%rsp), %rdi
leaq 0x40(%rsp), %rdx
leaq 0x20(%rsp), %rcx
movq %r14, %rsi
callq 0x1e4fc
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x18cf1
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x132a0
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x18d0c
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x132a0
movq 0x8(%rsp), %rbx
movq 0x10(%rsp), %r13
cmpq %r13, %rbx
je 0x18d7b
movq 0x202b6(%rip), %r14     # 0x38fd8
leaq 0x14902(%rip), %r15     # 0x2d62b
movl $0x9, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x132f0
movl (%rbx), %esi
movq %r14, %rdi
callq 0x13420
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x13260
movsbl %al, %esi
movq %r12, %rdi
callq 0x13030
movq %rax, %rdi
callq 0x13190
addq $0x4, %rbx
cmpq %r13, %rbx
jne 0x18d29
movq 0x8(%rsp), %rbx
testq %rbx, %rbx
je 0x18d90
movq 0x18(%rsp), %rsi
subq %rbx, %rsi
movq %rbx, %rdi
callq 0x132a0
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x18dbd
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x132a0
jmp 0x18dbd
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x18df4
movq 0x50(%rsp), %rsi
incq %rsi
jmp 0x18def
movq %rax, %rbx
jmp 0x18df4
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x18df4
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x132a0
movq %rbx, %rdi
callq 0x13430