// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/queue.c
// Function: gt_queue_iterate_reverse
int gt_queue_iterate_reverse(GtQueue *q, GtQueueProcessor gt_queue_processor,
                             void *info, GtError *err)
{
  long i;
  int rval;
  gt_error_check(err);
  gt_assert(q && gt_queue_processor);
  if (gt_queue_size(q)) {
    if (q->front < q->back) { /* no wraparound */
      for (i = q->back-1; i >= q->front; i--) {
        if ((rval = gt_queue_processor(q->contents + i, info, err)))
          return rval;
      }
    }
    else { /* wraparound */
      for (i = q->back-1; i >= 0; i--) {
        if ((rval = gt_queue_processor(q->contents + i, info, err)))
          return rval;
      }
      for (i = q->size-1; i >= q->front; i--) {
        if ((rval = gt_queue_processor(q->contents +i, info, err))) return rval;
      }
    }
  }
  return 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movq %rcx, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x91598
movq 0x10(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0x91560
jmp 0x91598
movq 0x122a71(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xccaf5(%rip), %rsi     # 0x15e066
leaq 0xcd0d0(%rip), %rdx     # 0x15e648
leaq 0xde6f1(%rip), %rcx     # 0x16fc70
leaq 0xde64e(%rip), %r8      # 0x16fbd4
movl $0xcf, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x9159a
jmp 0x9159c
cmpq $0x0, 0x28(%rsp)
je 0x915ac
cmpq $0x0, 0x20(%rsp)
jne 0x915e4
movq 0x122a25(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xccaa9(%rip), %rsi     # 0x15e066
leaq 0xde694(%rip), %rdx     # 0x16fc58
leaq 0xde6a5(%rip), %rcx     # 0x16fc70
leaq 0xde602(%rip), %r8      # 0x16fbd4
movl $0xd0, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x915e6
movq 0x28(%rsp), %rdi
callq 0x90d30
cmpq $0x0, %rax
je 0x91759
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x28(%rsp), %rcx
cmpq 0x10(%rcx), %rax
jge 0x91682
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
subq $0x1, %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x28(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jl 0x9167d
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
movq (%rcx), %rdi
movq 0x8(%rsp), %rcx
shlq $0x3, %rcx
addq %rcx, %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
callq *%rax
movl %eax, 0x4(%rsp)
cmpl $0x0, %eax
je 0x9166b
movl 0x4(%rsp), %eax
movl %eax, 0x34(%rsp)
jmp 0x91761
jmp 0x9166d
movq 0x8(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x91620
jmp 0x91757
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
subq $0x1, %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jl 0x916e9
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
movq (%rcx), %rdi
movq 0x8(%rsp), %rcx
shlq $0x3, %rcx
addq %rcx, %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
callq *%rax
movl %eax, 0x4(%rsp)
cmpl $0x0, %eax
je 0x916d7
movl 0x4(%rsp), %eax
movl %eax, 0x34(%rsp)
jmp 0x91761
jmp 0x916d9
movq 0x8(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x91694
movq 0x28(%rsp), %rax
movq 0x18(%rax), %rax
subq $0x1, %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x28(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jl 0x91755
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
movq (%rcx), %rdi
movq 0x8(%rsp), %rcx
shlq $0x3, %rcx
addq %rcx, %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
callq *%rax
movl %eax, 0x4(%rsp)
cmpl $0x0, %eax
je 0x91743
movl 0x4(%rsp), %eax
movl %eax, 0x34(%rsp)
jmp 0x91761
jmp 0x91745
movq 0x8(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x916fb
jmp 0x91757
jmp 0x91759
movl $0x0, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw (%rax,%rax)