// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-diffcov.c
// Function: dc_init_sfxstrategy_for_sample
static void dc_init_sfxstrategy_for_sample(Sfxstrategy *sfxstrategy,
                                           const Sfxstrategy *mainsfxstrategy,
                                           bool bitwise_cmp_ok,
                                           GtUword effectivesamplesize,
                                           GtUword totallength,
                                           GtLogger *logger)
{
  if (mainsfxstrategy != NULL)
  {
    double sampledproportion = (double) effectivesamplesize/totallength;

    *sfxstrategy = *mainsfxstrategy;
#define SETMAXCOUNT(COMP)\
    if (mainsfxstrategy->COMP >= 1UL)\
    {\
      sfxstrategy->COMP = GT_MAX(2UL,\
                                 mainsfxstrategy->COMP * sampledproportion);\
    }
    SETMAXCOUNT(maxcountingsort);
    SETMAXCOUNT(maxbltriesort);
    SETMAXCOUNT(maxinsertionsort);
  } else
  {
    defaultsfxstrategy(sfxstrategy,bitwise_cmp_ok);
  }
  gt_logger_log(logger,"samplesort.maxinsertionsort="GT_WU"",
                sfxstrategy->maxinsertionsort);
  gt_logger_log(logger,"samplesort.maxbltriesort="GT_WU"",
                sfxstrategy->maxbltriesort);
  gt_logger_log(logger,"samplesort.maxcountingsort="GT_WU"",
                sfxstrategy->maxcountingsort);
}

// Assembly:
subq $0x58, %rsp
movb %dl, %al
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
andb $0x1, %al
movb %al, 0x47(%rsp)
movq %rcx, 0x38(%rsp)
movq %r8, 0x30(%rsp)
movq %r9, 0x28(%rsp)
cmpq $0x0, 0x48(%rsp)
je 0x2c3119
movq 0x38(%rsp), %xmm0
movaps 0x255ad2(%rip), %xmm3   # 0x518930
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x255ad6(%rip), %xmm2   # 0x518940
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movq 0x30(%rsp), %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0x50(%rsp), %rdi
movq 0x48(%rsp), %rsi
movl $0x38, %edx
callq 0x19610
movq 0x48(%rsp), %rax
cmpq $0x1, 0x18(%rax)
jb 0x2c2f7d
movq 0x48(%rsp), %rax
movq 0x18(%rax), %xmm1
movaps 0x255a5f(%rip), %xmm0   # 0x518930
punpckldq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
movapd 0x255a63(%rip), %xmm0   # 0x518940
subpd %xmm0, %xmm1
movaps %xmm1, %xmm0
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm0, %xmm1
mulsd 0x20(%rsp), %xmm1
movsd 0x255e66(%rip), %xmm0   # 0x518d60
ucomisd %xmm1, %xmm0
jbe 0x2c2f10
movsd 0x255e58(%rip), %xmm0   # 0x518d60
movsd %xmm0, 0x18(%rsp)
jmp 0x2c2f48
movq 0x48(%rsp), %rax
movq 0x18(%rax), %xmm0
movaps 0x255a0f(%rip), %xmm1   # 0x518930
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x255a13(%rip), %xmm1   # 0x518940
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
mulsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x18(%rsp)
movsd 0x18(%rsp), %xmm0
movsd 0x255e1a(%rip), %xmm2   # 0x518d70
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
movq 0x50(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x48(%rsp), %rax
cmpq $0x1, 0x10(%rax)
jb 0x2c304a
movq 0x48(%rsp), %rax
movq 0x10(%rax), %xmm1
movaps 0x255992(%rip), %xmm0   # 0x518930
punpckldq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
movapd 0x255996(%rip), %xmm0   # 0x518940
subpd %xmm0, %xmm1
movaps %xmm1, %xmm0
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm0, %xmm1
mulsd 0x20(%rsp), %xmm1
movsd 0x255d99(%rip), %xmm0   # 0x518d60
ucomisd %xmm1, %xmm0
jbe 0x2c2fdd
movsd 0x255d8b(%rip), %xmm0   # 0x518d60
movsd %xmm0, 0x10(%rsp)
jmp 0x2c3015
movq 0x48(%rsp), %rax
movq 0x10(%rax), %xmm0
movaps 0x255942(%rip), %xmm1   # 0x518930
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x255946(%rip), %xmm1   # 0x518940
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
mulsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x10(%rsp), %xmm0
movsd 0x255d4d(%rip), %xmm2   # 0x518d70
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
movq 0x50(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x48(%rsp), %rax
cmpq $0x1, 0x8(%rax)
jb 0x2c3117
movq 0x48(%rsp), %rax
movq 0x8(%rax), %xmm1
movaps 0x2558c5(%rip), %xmm0   # 0x518930
punpckldq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
movapd 0x2558c9(%rip), %xmm0   # 0x518940
subpd %xmm0, %xmm1
movaps %xmm1, %xmm0
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm0, %xmm1
mulsd 0x20(%rsp), %xmm1
movsd 0x255ccc(%rip), %xmm0   # 0x518d60
ucomisd %xmm1, %xmm0
jbe 0x2c30aa
movsd 0x255cbe(%rip), %xmm0   # 0x518d60
movsd %xmm0, 0x8(%rsp)
jmp 0x2c30e2
movq 0x48(%rsp), %rax
movq 0x8(%rax), %xmm0
movaps 0x255875(%rip), %xmm1   # 0x518930
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x255879(%rip), %xmm1   # 0x518940
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
mulsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x8(%rsp), %xmm0
movsd 0x255c80(%rip), %xmm2   # 0x518d70
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
movq 0x50(%rsp), %rax
movq %rcx, 0x8(%rax)
jmp 0x2c312c
movq 0x50(%rsp), %rdi
movb 0x47(%rsp), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x2c4f20
movq 0x28(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rdx
leaq 0x2c71aa(%rip), %rsi    # 0x58a2eb
movb $0x0, %al
callq 0xe7cd0
movq 0x28(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x10(%rax), %rdx
leaq 0x2c71ae(%rip), %rsi    # 0x58a30b
movb $0x0, %al
callq 0xe7cd0
movq 0x28(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdx
leaq 0x2c71af(%rip), %rsi    # 0x58a328
movb $0x0, %al
callq 0xe7cd0
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)