// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa-maxpairs.c
// Function: cartproduct2_maxpairs
static int cartproduct2_maxpairs(GtBUstate_maxpairs *state,
                                 GtUword fatherdepth,
                                 const GtBUinfo_maxpairs *ninfo1,
                                 unsigned int base1,
                                 const GtBUinfo_maxpairs *ninfo2,
                                 unsigned int base2,
                                 GtError *err)
{
  Listtype *pl1, *pl2;
  GtUword *start1, *start2, *spptr1, *spptr2;

  pl1 = &NODEPOSLISTENTRY(ninfo1,base1);
  start1 = state->poslist[base1].spaceGtUword + pl1->start;
  pl2 = &NODEPOSLISTENTRY(ninfo2,base2);
  start2 = state->poslist[base2].spaceGtUword + pl2->start;
  for (spptr1 = start1; spptr1 < start1 + pl1->length; spptr1++)
  {
    for (spptr2 = start2; spptr2 < start2 + pl2->length; spptr2++)
    {
      if (state->processmaxpairs(state->processmaxpairsinfo,
                                 &state->genericencseq,
                                 fatherdepth,GT_MIN(*spptr1,*spptr2),
                                             GT_MAX(*spptr1,*spptr2),err) != 0)
      {
        return -1;
      }
    }
  }
  return 0;
}

// Assembly:
subq $0xa8, %rsp
movq 0xb0(%rsp), %rax
movq %rdi, 0x98(%rsp)
movq %rsi, 0x90(%rsp)
movq %rdx, 0x88(%rsp)
movl %ecx, 0x84(%rsp)
movq %r8, 0x78(%rsp)
movl %r9d, 0x74(%rsp)
movq 0x88(%rsp), %rax
movq 0x18(%rax), %rax
movl 0x84(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, 0x68(%rsp)
movq 0x98(%rsp), %rax
movq 0x28(%rax), %rax
movl 0x84(%rsp), %ecx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq 0x68(%rsp), %rcx
movq (%rcx), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, 0x58(%rsp)
movq 0x78(%rsp), %rax
movq 0x18(%rax), %rax
movl 0x74(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, 0x60(%rsp)
movq 0x98(%rsp), %rax
movq 0x28(%rax), %rax
movl 0x74(%rsp), %ecx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq 0x60(%rsp), %rcx
movq (%rcx), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, 0x50(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rax
movq 0x58(%rsp), %rcx
movq 0x68(%rsp), %rdx
movq 0x8(%rdx), %rdx
shlq $0x3, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jae 0x237a03
movq 0x50(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x60(%rsp), %rdx
movq 0x8(%rdx), %rdx
shlq $0x3, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jae 0x2379ee
movq 0x98(%rsp), %rax
movq 0x50(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x98(%rsp), %rax
movq 0x68(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x98(%rsp), %rax
addq $0x30, %rax
movq %rax, 0x30(%rsp)
movq 0x90(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x48(%rsp), %rax
movq (%rax), %rax
movq 0x40(%rsp), %rcx
cmpq (%rcx), %rax
jae 0x23795a
movq 0x48(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x18(%rsp)
jmp 0x237967
movq 0x40(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x48(%rsp), %rax
movq (%rax), %rax
movq 0x40(%rsp), %rcx
cmpq (%rcx), %rax
jbe 0x237992
movq 0x48(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x8(%rsp)
jmp 0x23799f
movq 0x40(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq 0x10(%rsp), %rcx
movq 0x38(%rsp), %rdx
movq 0x30(%rsp), %rsi
movq 0x28(%rsp), %rdi
movq 0x8(%rsp), %r8
movq 0xb0(%rsp), %r9
callq *%rax
cmpl $0x0, %eax
je 0x2379d9
movl $0xffffffff, 0xa4(%rsp) # imm = 0xFFFFFFFF
jmp 0x237a0e
jmp 0x2379db
movq 0x40(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x40(%rsp)
jmp 0x2378d6
jmp 0x2379f0
movq 0x48(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x48(%rsp)
jmp 0x2378a9
movl $0x0, 0xa4(%rsp)
movl 0xa4(%rsp), %eax
addq $0xa8, %rsp
retq
nopl (%rax)