// File: /workspace/github_c_makefile_star2_O1/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:
pushq %r14
pushq %rbx
pushq %rax
movq %r9, %rbx
movq %rdi, %r14
testq %rsi, %rsi
je 0x1f4b0d
movq %rcx, %xmm1
movq 0x15bf4e(%rip), %xmm2   # 0x3508e0
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x15bf52(%rip), %xmm3   # 0x3508f0
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movq %r8, %xmm1
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq 0x30(%rsi), %rax
movq %rax, 0x30(%r14)
movupd (%rsi), %xmm1
movupd 0x10(%rsi), %xmm2
movups 0x20(%rsi), %xmm3
movups %xmm3, 0x20(%r14)
movupd %xmm2, 0x10(%r14)
movupd %xmm1, (%r14)
movq 0x18(%rsi), %rax
testq %rax, %rax
je 0x1f4a4d
movq %rax, %xmm1
punpckldq 0x15beda(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x15bee2(%rip), %xmm1   # 0x3508f0
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
mulsd %xmm0, %xmm2
movsd 0x17dbda(%rip), %xmm1   # 0x372600
maxsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rcx
subsd 0x15c2e6(%rip), %xmm1   # 0x350d20
cvttsd2si %xmm1, %rdx
sarq $0x3f, %rcx
andq %rcx, %rdx
orq %rax, %rdx
movq %rdx, 0x18(%r14)
movq 0x10(%rsi), %rax
testq %rax, %rax
je 0x1f4aaa
movq %rax, %xmm1
punpckldq 0x15be7d(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x15be85(%rip), %xmm1   # 0x3508f0
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
mulsd %xmm0, %xmm2
movsd 0x17db7d(%rip), %xmm1   # 0x372600
maxsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rcx
subsd 0x15c289(%rip), %xmm1   # 0x350d20
cvttsd2si %xmm1, %rdx
sarq $0x3f, %rcx
andq %rcx, %rdx
orq %rax, %rdx
movq %rdx, 0x10(%r14)
movq 0x8(%rsi), %rax
testq %rax, %rax
je 0x1f4b50
movq %rax, %xmm1
punpckldq 0x15be1c(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x15be24(%rip), %xmm1   # 0x3508f0
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
mulsd %xmm2, %xmm0
movsd 0x17db1c(%rip), %xmm1   # 0x372600
maxsd %xmm0, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rcx
subsd 0x15c228(%rip), %xmm1   # 0x350d20
cvttsd2si %xmm1, %rdx
sarq $0x3f, %rcx
andq %rcx, %rdx
orq %rax, %rdx
movq %rdx, 0x8(%r14)
jmp 0x1f4b50
movq $0x1, (%r14)
movq $0x3, 0x8(%r14)
movq $0x3e8, 0x10(%r14)      # imm = 0x3E8
movq $0xfa0, 0x18(%r14)      # imm = 0xFA0
xorl %eax, %eax
movl %eax, 0x20(%r14)
movb %dl, 0x2c(%r14)
movl %eax, 0x2d(%r14)
movabsq $0x10000000000, %rax    # imm = 0x10000000000
movq %rax, 0x30(%r14)
movq $0x0, 0x24(%r14)
movq 0x8(%r14), %rdx
leaq 0x1cbef3(%rip), %rsi    # 0x3c0a4e
movq %rbx, %rdi
xorl %eax, %eax
callq 0x10906e
movq 0x10(%r14), %rdx
leaq 0x1cbefe(%rip), %rsi    # 0x3c0a6e
movq %rbx, %rdi
xorl %eax, %eax
callq 0x10906e
movq 0x18(%r14), %rdx
leaq 0x1cbf06(%rip), %rsi    # 0x3c0a8b
movq %rbx, %rdi
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x10906e