// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/match/esa_spmitvs_visitor.c
// Function: gt_esa_spmitvs_visitor_processbranchingedge
static int gt_esa_spmitvs_visitor_processbranchingedge(GtESAVisitor *ev,
                                                    GT_UNUSED bool firstsucc,
                                                    GtUword fd,
                                                    GT_UNUSED GtUword flb,
                                                    GT_UNUSED
                                                        GtESAVisitorInfo *finfo,
                                                    GtUword sd,
                                                    GtUword slb,
                                                    GtUword srb,
                                                    GT_UNUSED
                                                        GtESAVisitorInfo *sinfo,
                                                    GT_UNUSED GtError *err)
{
  GtESASpmitvsVisitor *esv;
  GtUword idx;
  gt_assert(ev);
  esv = gt_esa_spmitvs_visitor_cast(ev);

  for (idx=fd+1; idx<sd; idx++)
  {
    gt_assert(idx <= esv->maxlen);
    if (esv->lastwholeleaf != esv->totallength &&
        esv->lastwholeleaf >= slb)
    {
      gt_assert(esv->lastwholeleaf <= srb);
      esv->wholeleafcount[idx].wholeleaf++;
      esv->wholeleafcount[idx].wholeleafwidth += (srb - slb + 1);
    } else
    {
      esv->wholeleafcount[idx].nowholeleaf++;
      esv->wholeleafcount[idx].nowholeleafwidth += (srb - slb + 1);
    }
  }
  return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
testq %rdi, %rdi
je 0x154c4d
movq %r9, %rbx
movq %rdx, %r14
movq %rdi, %r15
movq 0x38(%rsp), %r12
movq 0x30(%rsp), %r13
callq 0x154a13
movq %rax, %rdi
movq %r15, %rsi
callq 0x155095
movq %r12, %rcx
subq %r13, %rcx
incq %rcx
movq %r14, %rdx
shlq $0x5, %rdx
addq $0x30, %rdx
leaq 0x1(%r14), %rsi
cmpq %rbx, %rsi
jae 0x154be1
cmpq 0x30(%rax), %rsi
ja 0x154bed
incq %r14
movq 0x28(%rax), %rdi
cmpq %r13, %rdi
jb 0x154bbf
cmpq 0x18(%rax), %rdi
je 0x154bbf
cmpq %r12, %rdi
ja 0x154c17
movq 0x40(%rax), %rdi
addq %rdx, %rdi
addq $-0x8, %rdi
incq -0x8(%rdi)
jmp 0x154bd5
movq 0x40(%rax), %rdi
incq (%rdi,%rdx)
movq %r14, %r8
shlq $0x5, %r8
addq %r8, %rdi
addq $0x18, %rdi
addq %rcx, (%rdi)
addq $0x20, %rdx
incq %rsi
jmp 0x154b8c
xorl %eax, %eax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq 0x2e3374(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x190415(%rip), %rsi    # 0x2e5013
leaq 0x1f0e0e(%rip), %rdx    # 0x345a13
leaq 0x1f0ddb(%rip), %rcx    # 0x3459e7
leaq 0x1f0d13(%rip), %r8     # 0x345926
pushq $0x6f
jmp 0x154c3f
movq 0x2e334a(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1903eb(%rip), %rsi    # 0x2e5013
leaq 0x1f0df7(%rip), %rdx    # 0x345a26
leaq 0x1f0db1(%rip), %rcx    # 0x3459e7
leaq 0x1f0ce9(%rip), %r8     # 0x345926
pushq $0x73
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390
movq 0x2e3314(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1903b5(%rip), %rsi    # 0x2e5013
leaq 0x1b898c(%rip), %rdx    # 0x30d5f1
leaq 0x1f0d7b(%rip), %rcx    # 0x3459e7
leaq 0x1f0cb3(%rip), %r8     # 0x345926
pushq $0x6a
jmp 0x154c3f