// File: /workspace/github_c_makefile_star2_O2/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 0x19b4c3
movq %rcx, %xmm1
movq 0x14c598(%rip), %xmm2   # 0x2e78e0
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x14c59c(%rip), %xmm3   # 0x2e78f0
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 0x19b403
movq %rax, %xmm1
punpckldq 0x14c524(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x14c52c(%rip), %xmm1   # 0x2e78f0
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
mulsd %xmm0, %xmm2
movsd 0x16df2c(%rip), %xmm1   # 0x309308
maxsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rcx
subsd 0x14c930(%rip), %xmm1   # 0x2e7d20
cvttsd2si %xmm1, %rdx
sarq $0x3f, %rcx
andq %rcx, %rdx
orq %rax, %rdx
movq %rdx, 0x18(%r14)
movq 0x10(%rsi), %rax
testq %rax, %rax
je 0x19b460
movq %rax, %xmm1
punpckldq 0x14c4c7(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x14c4cf(%rip), %xmm1   # 0x2e78f0
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
mulsd %xmm0, %xmm2
movsd 0x16decf(%rip), %xmm1   # 0x309308
maxsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rcx
subsd 0x14c8d3(%rip), %xmm1   # 0x2e7d20
cvttsd2si %xmm1, %rdx
sarq $0x3f, %rcx
andq %rcx, %rdx
orq %rax, %rdx
movq %rdx, 0x10(%r14)
movq 0x8(%rsi), %rax
testq %rax, %rax
je 0x19b508
movq %rax, %xmm1
punpckldq 0x14c466(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x14c46e(%rip), %xmm1   # 0x2e78f0
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
mulsd %xmm2, %xmm0
movsd 0x16de6e(%rip), %xmm1   # 0x309308
maxsd %xmm0, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rcx
subsd 0x14c872(%rip), %xmm1   # 0x2e7d20
cvttsd2si %xmm1, %rdx
sarq $0x3f, %rcx
andq %rcx, %rdx
orq %rax, %rdx
movq %rdx, 0x8(%r14)
jmp 0x19b50c
movq $0x1, (%r14)
movq $0x3, 0x8(%r14)
movq $0x3e8, 0x10(%r14)      # imm = 0x3E8
movq $0xfa0, 0x18(%r14)      # imm = 0xFA0
andl $0x0, 0x20(%r14)
movb %dl, 0x2c(%r14)
movabsq $0x10000000000, %rax    # imm = 0x10000000000
movq %rax, 0x30(%r14)
andl $0x0, 0x2d(%r14)
andq $0x0, 0x24(%r14)
pushq $0x3
popq %rdx
jmp 0x19b50c
movq 0x8(%r14), %rdx
leaq 0x1bc37b(%rip), %rsi    # 0x35788e
movq %rbx, %rdi
xorl %eax, %eax
callq 0x92e71
movq 0x10(%r14), %rdx
leaq 0x1bc386(%rip), %rsi    # 0x3578ae
movq %rbx, %rdi
xorl %eax, %eax
callq 0x92e71
movq 0x18(%r14), %rdx
leaq 0x1bc38e(%rip), %rsi    # 0x3578cb
movq %rbx, %rdi
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x92e71