// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/encseq.c
// Function: suffixofdifferenttwobitencodings
static int suffixofdifferenttwobitencodings(bool complement,
                                            GtCommonunits *commonunits,
                                            GtTwobitencoding tbe1,
                                            GtTwobitencoding tbe2)
{
  unsigned int tmplcsvalue = 0;

  gt_assert((tbe1 ^ tbe2) > 0);
  tmplcsvalue = GT_DIV2(numberoftrailingzeros(tbe1 ^ tbe2));
  gt_assert(tmplcsvalue < (unsigned int) GT_UNITSIN2BITENC);
  gt_assert(commonunits != NULL);
  commonunits->common = tmplcsvalue;
  commonunits->leftspecial = commonunits->rightspecial = false;
  if (complement) {
    return GT_COMPLEMENTBASE(EXTRACTENCODEDCHARSCALARFROMRIGHT(tbe1,
                                                               tmplcsvalue)) <
           GT_COMPLEMENTBASE(EXTRACTENCODEDCHARSCALARFROMRIGHT(tbe2,
                                                               tmplcsvalue))
           ? -1 : 1;
  }
  return EXTRACTENCODEDCHARSCALARFROMRIGHT(tbe1, tmplcsvalue) <
         EXTRACTENCODEDCHARSCALARFROMRIGHT(tbe2, tmplcsvalue)
         ? -1 : 1;
}

// Assembly:
subq $0x28, %rsp
movb %dil, %al
andb $0x1, %al
movb %al, 0x23(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
movq 0x10(%rsp), %rax
xorq 0x8(%rsp), %rax
cmpq $0x0, %rax
ja 0x11e49c
movq 0x95b6d(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x3fbf1(%rip), %rsi     # 0x15e066
leaq 0x68310(%rip), %rdx     # 0x18678c
leaq 0x6b3d8(%rip), %rcx     # 0x18985b
leaq 0x671d4(%rip), %r8      # 0x18565e
movl $0x191d, %r9d           # imm = 0x191D
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x11e49e
movq 0x10(%rsp), %rdi
xorq 0x8(%rsp), %rdi
callq 0x132de0
shrl %eax
movl %eax, 0x4(%rsp)
cmpl $0x20, 0x4(%rsp)
jb 0x11e4f2
movq 0x95b17(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x3fb9b(%rip), %rsi     # 0x15e066
leaq 0x6b3aa(%rip), %rdx     # 0x18987c
leaq 0x6b382(%rip), %rcx     # 0x18985b
leaq 0x6717e(%rip), %r8      # 0x18565e
movl $0x191f, %r9d           # imm = 0x191F
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x11e4f4
jmp 0x11e4f6
cmpq $0x0, 0x18(%rsp)
jne 0x11e536
movq 0x95ad3(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x3fb57(%rip), %rsi     # 0x15e066
leaq 0x682ed(%rip), %rdx     # 0x186803
leaq 0x6b33e(%rip), %rcx     # 0x18985b
leaq 0x6713a(%rip), %r8      # 0x18565e
movl $0x1920, %r9d           # imm = 0x1920
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x11e538
movl 0x4(%rsp), %ecx
movq 0x18(%rsp), %rax
movl %ecx, (%rax)
movq 0x18(%rsp), %rax
movb $0x0, 0x5(%rax)
movq 0x18(%rsp), %rax
movb $0x0, 0x4(%rax)
testb $0x1, 0x23(%rsp)
je 0x11e5aa
movq 0x10(%rsp), %rax
movl 0x4(%rsp), %ecx
shll %ecx
movl %ecx, %ecx
shrq %cl, %rax
andq $0x3, %rax
movl $0x3, %edx
subq %rax, %rdx
movq 0x8(%rsp), %rax
movl 0x4(%rsp), %ecx
shll %ecx
movl %ecx, %ecx
shrq %cl, %rax
andq $0x3, %rax
movl $0x3, %esi
subq %rax, %rsi
movl $0x1, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpq %rsi, %rdx
cmovbl %ecx, %eax
movl %eax, 0x24(%rsp)
jmp 0x11e5ea
movq 0x10(%rsp), %rdx
movl 0x4(%rsp), %eax
shll %eax
movl %eax, %eax
movl %eax, %ecx
shrq %cl, %rdx
andq $0x3, %rdx
movq 0x8(%rsp), %rsi
movl 0x4(%rsp), %eax
shll %eax
movl %eax, %eax
movl %eax, %ecx
shrq %cl, %rsi
andq $0x3, %rsi
movl $0x1, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpq %rsi, %rdx
cmovbl %ecx, %eax
movl %eax, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)