// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa-dfs.c
// Function: gt_depthfirstesa
int gt_depthfirstesa(Sequentialsuffixarrayreader *ssar,
                  Dfsinfo *(*allocateDfsinfo)(Dfsstate *),
                  void(*freeDfsinfo)(Dfsinfo *,Dfsstate *),
                  int(*processleafedge)(bool,GtUword,Dfsinfo *,
                                        GtUword,Dfsstate *,
                                        GtError *),
                  int(*processbranchedge)(bool,
                                          GtUword,
                                          Dfsinfo *,
                                          Dfsinfo *,
                                          Dfsstate *,
                                          GtError *),
                  int(*processcompletenode)(GtUword,
                                            Dfsinfo *,GtUword,
                                            Dfsstate *,GtError *),
                  void (*assignleftmostleaf)(Dfsinfo *,GtUword,
                                             Dfsstate *),
                  void (*assignrightmostleaf)(Dfsinfo *,GtUword,
                                              GtUword,
                                              GtUword,Dfsstate *),
                  Dfsstate *state,
                  GT_UNUSED GtLogger *logger,
                  GtError *err)
{
  bool firstedge,
       firstrootedge;
  GtUword previoussuffix = 0,
         previouslcp,
         currentindex,
         currentlcp = 0, /* May be necessary if currentlcp is used after the
                            outer while loop */
         nonspecials,
         allocatedItvinfo = 0,
         nextfreeItvinfo = 0;
  Itvinfo *stackspace = NULL;
  bool haserr = false;

  firstrootedge = true;
  PUSHDFS(0,true);
  if (assignleftmostleaf != NULL)
  {
    assignleftmostleaf(TOP.dfsinfo,0,state);
  }
  nonspecials = gt_Sequentialsuffixarrayreader_nonspecials(ssar);
  for (currentindex = 0; currentindex < nonspecials; currentindex++)
  {
    SSAR_NEXTSEQUENTIALLCPTABVALUE(currentlcp,ssar);
    SSAR_NEXTSEQUENTIALSUFTABVALUE(previoussuffix,ssar);
    while (currentlcp < TOP.depth)
    {
      if (TOP.lastisleafedge)
      {
        if (processleafedge != NULL &&
            processleafedge(false,TOP.depth,TOP.dfsinfo,
                            previoussuffix,state,err) != 0)
        {
          haserr = true;
          break;
        }
      } else
      {
        gt_assert(nextfreeItvinfo < allocatedItvinfo);
        if (processbranchedge != NULL &&
            processbranchedge(false,
                              TOP.depth,
                              TOP.dfsinfo,
                              ABOVETOP.dfsinfo,
                              state,
                              err) != 0)
        {
          haserr = true;
          break;
        }
      }
      if (assignrightmostleaf != NULL)
      {
        assignrightmostleaf(TOP.dfsinfo,
                            currentindex,
                            previoussuffix,
                            currentlcp,
                            state);
      }
      if (processcompletenode != NULL &&
          processcompletenode(TOP.depth,TOP.dfsinfo,
                              nextfreeItvinfo >= 2UL ? BELOWTOP.depth
                                                     : 0,
                              state,err) != 0)
      {
        haserr = true;
        break;
      }
      gt_assert(nextfreeItvinfo > 0);
      nextfreeItvinfo--;
    }
    if (haserr)
    {
      break;
    }
    if (currentlcp == TOP.depth)
    {
      if (firstrootedge && TOP.depth == 0)
      {
        firstedge = true;
        firstrootedge = false;
      } else
      {
        firstedge = false;
      }
      if (TOP.lastisleafedge)
      {
        if (processleafedge != NULL &&
            processleafedge(firstedge,TOP.depth,TOP.dfsinfo,
                            previoussuffix,state,err) != 0)
        {
          haserr = true;
          break;
        }
      } else
      {
        if (!firstedge)
        {
          gt_assert(nextfreeItvinfo < allocatedItvinfo);
        }
        if (processbranchedge != NULL &&
            processbranchedge(firstedge,
                              TOP.depth,
                              TOP.dfsinfo,
                              /*firstedge ? NULL : ABOVETOP.dfsinfo,*/
                              ABOVETOP.dfsinfo,
                              state,
                              err) != 0)
        {
          haserr = true;
          break;
        }
        TOP.lastisleafedge = true;
      }
    } else
    {
      PUSHDFS(currentlcp,true);
      if (BELOWTOP.lastisleafedge)
      {
        if (assignleftmostleaf != NULL)
        {
          assignleftmostleaf(TOP.dfsinfo,currentindex,state);
        }
        if (processleafedge != NULL &&
            processleafedge(true,
                            TOP.depth,
                            TOP.dfsinfo,
                            previoussuffix,
                            state,
                            err) != 0)
        {
          haserr = true;
          break;
        }
        BELOWTOP.lastisleafedge = false;
      } else
      {
        previouslcp = TOP.depth;
        if (processbranchedge != NULL &&
            processbranchedge(true,
                              previouslcp,
                              TOP.dfsinfo,
                              NULL, /* not used since firstsucc = true */
                              state,
                              err) != 0)
        {
          haserr = true;
          break;
        }
      }
    }
    gt_assert(!haserr);
  }
  freeItvinfo(stackspace,
              allocatedItvinfo,
              freeDfsinfo,
              state);
  return haserr ? -1 : 0;
}

// Assembly:
subq $0xc8, %rsp
movq 0xf0(%rsp), %rax
movq 0xe8(%rsp), %rax
movq 0xe0(%rsp), %rax
movq 0xd8(%rsp), %rax
movq 0xd0(%rsp), %rax
movq %rdi, 0xc0(%rsp)
movq %rsi, 0xb8(%rsp)
movq %rdx, 0xb0(%rsp)
movq %rcx, 0xa8(%rsp)
movq %r8, 0xa0(%rsp)
movq %r9, 0x98(%rsp)
movq $0x0, 0x88(%rsp)
movq $0x0, 0x70(%rsp)
movq $0x0, 0x60(%rsp)
movq $0x0, 0x58(%rsp)
movq $0x0, 0x50(%rsp)
movb $0x0, 0x4f(%rsp)
movb $0x1, 0x96(%rsp)
movq 0x58(%rsp), %rax
cmpq 0x60(%rsp), %rax
jb 0x4b532f
jmp 0x4b52ae
movq 0x58(%rsp), %rax
cmpq 0x60(%rsp), %rax
je 0x4b52f2
movq 0x186cdf(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x60d48(%rip), %rsi     # 0x516013
leaq 0x102185(%rip), %rdx    # 0x5b7457
leaq 0x1021a2(%rip), %rcx    # 0x5b747b
leaq 0x1021ac(%rip), %r8     # 0x5b748c
movl $0x80, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4b52f4
movq 0x50(%rsp), %rdi
movq 0x60(%rsp), %rsi
movq 0x60(%rsp), %rdx
addq $0x20, %rdx
movq 0xb8(%rsp), %rcx
movq 0xe0(%rsp), %r8
callq 0x4b6000
movq %rax, 0x50(%rsp)
movq 0x60(%rsp), %rax
addq $0x20, %rax
movq %rax, 0x60(%rsp)
jmp 0x4b5331
cmpq $0x0, 0x50(%rsp)
jne 0x4b5371
movq 0x186c60(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x60cc9(%rip), %rsi     # 0x516013
leaq 0x10214f(%rip), %rdx    # 0x5b74a0
leaq 0x102123(%rip), %rcx    # 0x5b747b
leaq 0x10212d(%rip), %r8     # 0x5b748c
movl $0x80, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4b5373
movq 0x50(%rsp), %rax
imulq $0x18, 0x58(%rsp), %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
movq 0x50(%rsp), %rax
imulq $0x18, 0x58(%rsp), %rcx
addq %rcx, %rax
movb $0x1, (%rax)
movq 0x58(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x58(%rsp)
cmpq $0x0, 0xd0(%rsp)
je 0x4b53e2
movq 0xd0(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x10(%rcx), %rdi
movq 0xe0(%rsp), %rdx
xorl %ecx, %ecx
movl %ecx, %esi
callq *%rax
movq 0xc0(%rsp), %rdi
callq 0x23bed0
movq %rax, 0x68(%rsp)
movq $0x0, 0x78(%rsp)
movq 0x78(%rsp), %rax
cmpq 0x68(%rsp), %rax
jae 0x4b5fc5
movq 0xc0(%rsp), %rax
testb $0x1, 0x40(%rax)
je 0x4b54c7
movq 0xc0(%rsp), %rax
movq (%rax), %rsi
addq $0xd0, %rsi
leaq 0x4e(%rsp), %rdi
callq 0x4b6130
movl %eax, 0x48(%rsp)
cmpl $0x0, 0x48(%rsp)
jle 0x4b54bd
movzbl 0x4e(%rsp), %eax
cmpl $0xff, %eax
jge 0x4b545e
movzbl 0x4e(%rsp), %eax
movq %rax, 0x70(%rsp)
jmp 0x4b54bb
movq 0xc0(%rsp), %rax
movq (%rax), %rsi
addq $0xe8, %rsi
leaq 0x38(%rsp), %rdi
callq 0x4b6210
movl %eax, 0x48(%rsp)
cmpl $0x0, 0x48(%rsp)
jne 0x4b54b1
movq 0xf0(%rsp), %rdi
leaq 0x757d4(%rip), %rsi     # 0x52ac68
leaq 0x101ff1(%rip), %rdx    # 0x5b748c
movl $0x88, %ecx
movb $0x0, %al
callq 0xd88c0
movb $0x1, 0x4f(%rsp)
jmp 0x4b5fc5
movq 0x40(%rsp), %rax
movq %rax, 0x70(%rsp)
jmp 0x4b54c2
jmp 0x4b5fc5
jmp 0x4b55e2
movq 0xc0(%rsp), %rax
movq 0x20(%rax), %rax
movq 0xc0(%rsp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x4b55db
movq 0xc0(%rsp), %rax
movq (%rax), %rax
movq 0x60(%rax), %rax
movq 0xc0(%rsp), %rdx
movq 0x20(%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, 0x20(%rdx)
movb (%rax,%rcx), %al
movb %al, 0x4e(%rsp)
movzbl 0x4e(%rsp), %eax
cmpl $0xff, %eax
jge 0x4b552d
movzbl 0x4e(%rsp), %eax
movq %rax, 0x70(%rsp)
jmp 0x4b55d9
jmp 0x4b552f
movq 0xc0(%rsp), %rax
movq (%rax), %rax
movq 0x68(%rax), %rax
movq 0xc0(%rsp), %rcx
movq 0x28(%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq 0xc0(%rsp), %rcx
movq 0x20(%rcx), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
je 0x4b55a1
movq 0x186a30(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x60a99(%rip), %rsi     # 0x516013
leaq 0x75724(%rip), %rdx     # 0x52aca5
leaq 0x101ef3(%rip), %rcx    # 0x5b747b
leaq 0x101efd(%rip), %r8     # 0x5b748c
movl $0x88, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4b55a3
movq 0xc0(%rsp), %rax
movq (%rax), %rax
movq 0x68(%rax), %rax
movq 0xc0(%rsp), %rdx
movq 0x28(%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, 0x28(%rdx)
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, 0x70(%rsp)
jmp 0x4b55e0
jmp 0x4b5fc5
jmp 0x4b55e2
movq 0xc0(%rsp), %rax
testb $0x1, 0x40(%rax)
je 0x4b57ed
movq 0xc0(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0xb0(%rax)
je 0x4b56ff
movq 0xc0(%rsp), %rax
movq (%rax), %rax
addq $0xa0, %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
movl 0x4(%rax), %eax
movq 0x30(%rsp), %rcx
cmpl (%rcx), %eax
jb 0x4b56d3
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rcx
movl $0x8, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x19a70
movl %eax, %ecx
movq 0x30(%rsp), %rax
movl %ecx, (%rax)
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x19e10
cmpl $0x0, %eax
je 0x4b5699
movq 0xf0(%rsp), %rdi
leaq 0x75690(%rip), %rsi     # 0x52ad14
leaq 0x102984(%rip), %rdx    # 0x5b800f
movb $0x0, %al
callq 0xd88c0
movb $0x1, 0x4f(%rsp)
jmp 0x4b56d1
movq 0x30(%rsp), %rax
movl $0x0, 0x4(%rax)
movq 0x30(%rsp), %rax
cmpl $0x0, (%rax)
jne 0x4b56cf
movq 0xf0(%rsp), %rdi
leaq 0x75aaa(%rip), %rsi     # 0x52b168
movb $0x0, %al
callq 0xd88c0
movb $0x1, 0x4f(%rsp)
jmp 0x4b5fc5
jmp 0x4b56d1
jmp 0x4b56d3
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x30(%rsp), %rdx
movl 0x4(%rdx), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x4(%rdx)
movl %ecx, %ecx
movq (%rax,%rcx,8), %rax
movq %rax, 0x88(%rsp)
jmp 0x4b57eb
movq 0xc0(%rsp), %rax
movq (%rax), %rax
addq $0x88, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movl 0x4(%rax), %eax
movq 0x28(%rsp), %rcx
cmpl (%rcx), %eax
jb 0x4b57c5
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rcx
movl $0x4, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x19a70
movl %eax, %ecx
movq 0x28(%rsp), %rax
movl %ecx, (%rax)
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x19e10
cmpl $0x0, %eax
je 0x4b578b
movq 0xf0(%rsp), %rdi
leaq 0x7559e(%rip), %rsi     # 0x52ad14
leaq 0x75a03(%rip), %rdx     # 0x52b180
movb $0x0, %al
callq 0xd88c0
movb $0x1, 0x4f(%rsp)
jmp 0x4b57c3
movq 0x28(%rsp), %rax
movl $0x0, 0x4(%rax)
movq 0x28(%rsp), %rax
cmpl $0x0, (%rax)
jne 0x4b57c1
movq 0xf0(%rsp), %rdi
leaq 0x759b8(%rip), %rsi     # 0x52b168
movb $0x0, %al
callq 0xd88c0
movb $0x1, 0x4f(%rsp)
jmp 0x4b5fc5
jmp 0x4b57c3
jmp 0x4b57c5
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x28(%rsp), %rdx
movl 0x4(%rdx), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x4(%rdx)
movl %ecx, %ecx
movl (%rax,%rcx,4), %eax
movq %rax, 0x88(%rsp)
jmp 0x4b581f
movq 0xc0(%rsp), %rax
movq (%rax), %rax
movq 0x58(%rax), %rax
movq 0xc0(%rsp), %rdx
movq 0x18(%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, 0x18(%rdx)
movq (%rax,%rcx,8), %rax
movq %rax, 0x88(%rsp)
jmp 0x4b5821
movq 0x70(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
cmpq 0x8(%rcx), %rax
jae 0x4b5af2
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
testb $0x1, (%rax)
je 0x4b58d4
cmpq $0x0, 0xa8(%rsp)
je 0x4b58cf
movq 0xa8(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rsi
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x10(%rcx), %rdx
movq 0x88(%rsp), %rcx
movq 0xe0(%rsp), %r8
movq 0xf0(%rsp), %r9
xorl %edi, %edi
callq *%rax
cmpl $0x0, %eax
je 0x4b58cf
movb $0x1, 0x4f(%rsp)
jmp 0x4b5af2
jmp 0x4b5998
jmp 0x4b58d6
movq 0x58(%rsp), %rax
cmpq 0x60(%rsp), %rax
jb 0x4b591a
movq 0x1866b7(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x60720(%rip), %rsi     # 0x516013
leaq 0x101bb9(%rip), %rdx    # 0x5b74b3
leaq 0x101b7a(%rip), %rcx    # 0x5b747b
leaq 0x101b84(%rip), %r8     # 0x5b748c
movl $0x97, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4b591c
cmpq $0x0, 0xa0(%rsp)
je 0x4b5996
movq 0xa0(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rsi
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x10(%rcx), %rdx
movq 0x50(%rsp), %rcx
imulq $0x18, 0x58(%rsp), %rdi
addq %rdi, %rcx
movq 0x10(%rcx), %rcx
movq 0xe0(%rsp), %r8
movq 0xf0(%rsp), %r9
xorl %edi, %edi
callq *%rax
cmpl $0x0, %eax
je 0x4b5996
movb $0x1, 0x4f(%rsp)
jmp 0x4b5af2
jmp 0x4b5998
cmpq $0x0, 0xd8(%rsp)
je 0x4b59e0
movq 0xd8(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x10(%rcx), %rdi
movq 0x78(%rsp), %rsi
movq 0x88(%rsp), %rdx
movq 0x70(%rsp), %rcx
movq 0xe0(%rsp), %r8
callq *%rax
cmpq $0x0, 0x98(%rsp)
je 0x4b5a9b
movq 0x98(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movq %rax, 0x20(%rsp)
cmpq $0x2, 0x58(%rsp)
jb 0x4b5a60
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x2, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
jmp 0x4b5a69
xorl %eax, %eax
movq %rax, 0x8(%rsp)
jmp 0x4b5a69
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rsi
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rdx
movq 0xe0(%rsp), %rcx
movq 0xf0(%rsp), %r8
callq *%rax
cmpl $0x0, %eax
je 0x4b5a9b
movb $0x1, 0x4f(%rsp)
jmp 0x4b5af2
jmp 0x4b5a9d
cmpq $0x0, 0x58(%rsp)
ja 0x4b5add
movq 0x1864f4(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x6055d(%rip), %rsi     # 0x516013
leaq 0x101a19(%rip), %rdx    # 0x5b74d6
leaq 0x1019b7(%rip), %rcx    # 0x5b747b
leaq 0x1019c1(%rip), %r8     # 0x5b748c
movl $0xb5, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4b5adf
movq 0x58(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x58(%rsp)
jmp 0x4b5821
testb $0x1, 0x4f(%rsp)
je 0x4b5afe
jmp 0x4b5fc5
movq 0x70(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
cmpq 0x8(%rcx), %rax
jne 0x4b5cfc
testb $0x1, 0x96(%rsp)
je 0x4b5b5a
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
jne 0x4b5b5a
movb $0x1, 0x97(%rsp)
movb $0x0, 0x96(%rsp)
jmp 0x4b5b62
movb $0x0, 0x97(%rsp)
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
testb $0x1, (%rax)
je 0x4b5c03
cmpq $0x0, 0xa8(%rsp)
je 0x4b5bfe
movq 0xa8(%rsp), %rax
movb 0x97(%rsp), %dil
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rsi
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x10(%rcx), %rdx
movq 0x88(%rsp), %rcx
movq 0xe0(%rsp), %r8
movq 0xf0(%rsp), %r9
andb $0x1, %dil
movzbl %dil, %edi
callq *%rax
cmpl $0x0, %eax
je 0x4b5bfe
movb $0x1, 0x4f(%rsp)
jmp 0x4b5fc5
jmp 0x4b5cf7
testb $0x1, 0x97(%rsp)
jne 0x4b5c57
jmp 0x4b5c0f
movq 0x58(%rsp), %rax
cmpq 0x60(%rsp), %rax
jb 0x4b5c53
movq 0x18637e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x603e7(%rip), %rsi     # 0x516013
leaq 0x101880(%rip), %rdx    # 0x5b74b3
leaq 0x101841(%rip), %rcx    # 0x5b747b
leaq 0x10184b(%rip), %r8     # 0x5b748c
movl $0xd3, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4b5c55
jmp 0x4b5c57
cmpq $0x0, 0xa0(%rsp)
je 0x4b5cdf
movq 0xa0(%rsp), %rax
movb 0x97(%rsp), %dil
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rsi
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x10(%rcx), %rdx
movq 0x50(%rsp), %rcx
imulq $0x18, 0x58(%rsp), %r8
addq %r8, %rcx
movq 0x10(%rcx), %rcx
movq 0xe0(%rsp), %r8
movq 0xf0(%rsp), %r9
andb $0x1, %dil
movzbl %dil, %edi
callq *%rax
cmpl $0x0, %eax
je 0x4b5cdf
movb $0x1, 0x4f(%rsp)
jmp 0x4b5fc5
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movb $0x1, (%rax)
jmp 0x4b5f6d
movq 0x58(%rsp), %rax
cmpq 0x60(%rsp), %rax
jb 0x4b5d8f
jmp 0x4b5d0e
movq 0x58(%rsp), %rax
cmpq 0x60(%rsp), %rax
je 0x4b5d52
movq 0x18627f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x602e8(%rip), %rsi     # 0x516013
leaq 0x101725(%rip), %rdx    # 0x5b7457
leaq 0x101742(%rip), %rcx    # 0x5b747b
leaq 0x10174c(%rip), %r8     # 0x5b748c
movl $0xe5, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4b5d54
movq 0x50(%rsp), %rdi
movq 0x60(%rsp), %rsi
movq 0x60(%rsp), %rdx
addq $0x20, %rdx
movq 0xb8(%rsp), %rcx
movq 0xe0(%rsp), %r8
callq 0x4b6000
movq %rax, 0x50(%rsp)
movq 0x60(%rsp), %rax
addq $0x20, %rax
movq %rax, 0x60(%rsp)
jmp 0x4b5d91
cmpq $0x0, 0x50(%rsp)
jne 0x4b5dd1
movq 0x186200(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x60269(%rip), %rsi     # 0x516013
leaq 0x1016ef(%rip), %rdx    # 0x5b74a0
leaq 0x1016c3(%rip), %rcx    # 0x5b747b
leaq 0x1016cd(%rip), %r8     # 0x5b748c
movl $0xe5, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4b5dd3
movq 0x70(%rsp), %rcx
movq 0x50(%rsp), %rax
imulq $0x18, 0x58(%rsp), %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
movq 0x50(%rsp), %rax
imulq $0x18, 0x58(%rsp), %rcx
addq %rcx, %rax
movb $0x1, (%rax)
movq 0x58(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x58(%rsp)
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x2, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
testb $0x1, (%rax)
je 0x4b5eef
cmpq $0x0, 0xd0(%rsp)
je 0x4b5e62
movq 0xd0(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x10(%rcx), %rdi
movq 0x78(%rsp), %rsi
movq 0xe0(%rsp), %rdx
callq *%rax
cmpq $0x0, 0xa8(%rsp)
je 0x4b5ed5
movq 0xa8(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x8(%rcx), %rsi
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x10(%rcx), %rdx
movq 0x88(%rsp), %rcx
movq 0xe0(%rsp), %r8
movq 0xf0(%rsp), %r9
movl $0x1, %edi
callq *%rax
cmpl $0x0, %eax
je 0x4b5ed5
movb $0x1, 0x4f(%rsp)
jmp 0x4b5fc5
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x2, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
jmp 0x4b5f6b
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, 0x80(%rsp)
cmpq $0x0, 0xa0(%rsp)
je 0x4b5f69
movq 0xa0(%rsp), %rax
movq 0x80(%rsp), %rsi
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %rdx
subq $0x1, %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq 0x10(%rcx), %rdx
movq 0xe0(%rsp), %r8
movq 0xf0(%rsp), %r9
movl $0x1, %edi
xorl %ecx, %ecx
callq *%rax
cmpl $0x0, %eax
je 0x4b5f69
movb $0x1, 0x4f(%rsp)
jmp 0x4b5fc5
jmp 0x4b5f6b
jmp 0x4b5f6d
jmp 0x4b5f6f
testb $0x1, 0x4f(%rsp)
je 0x4b5fae
movq 0x186023(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x6008c(%rip), %rsi     # 0x516013
leaq 0xd262a(%rip), %rdx     # 0x5885b8
leaq 0x1014e6(%rip), %rcx    # 0x5b747b
leaq 0x1014f0(%rip), %r8     # 0x5b748c
movl $0x108, %r9d            # imm = 0x108
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4b5fb0
jmp 0x4b5fb2
movq 0x78(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x78(%rsp)
jmp 0x4b53fd
movq 0x50(%rsp), %rdi
movq 0x60(%rsp), %rsi
movq 0xb0(%rsp), %rdx
movq 0xe0(%rsp), %rcx
callq 0x4b6300
movb 0x4f(%rsp), %dl
xorl %eax, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
testb $0x1, %dl
cmovnel %ecx, %eax
addq $0xc8, %rsp
retq
nopl (%rax)