// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/match/eis-blockcomp.c
// Function: cacheFetchSuperBlock
static struct superBlock *
cacheFetchSuperBlock(const struct blockCompositionSeq *seqIdx,
                     GtUword superBlockNum, struct seqCache *sBlockCache)
{
  size_t cachePos = pos2CachePos(sBlockCache, superBlockNum);
  if (inSeqCache(sBlockCache, superBlockNum))
    return (struct superBlock *)sBlockCache->entriesPtr[cachePos];
  else
  {
    struct superBlock *sb =
      (struct superBlock *)sBlockCache->entriesPtr[cachePos];
    return fetchSuperBlock(seqIdx, superBlockNum, sb);
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rcx
movq %rsi, %rax
xorl %edx, %edx
divq (%rcx)
movq 0x8(%rcx), %rax
cmpq %rsi, (%rax,%rdx,8)
jne 0x316eaf
movq 0x10(%rcx), %rax
movq (%rax,%rdx,8), %rax
jmp 0x31713f
movq %rsi, %r14
movq %rdi, %rbx
movl 0xb0(%rdi), %eax
movl 0xb4(%rdi), %esi
movq %rax, %rdi
imulq %r14, %rdi
imulq %rdi, %rsi
cmpq 0x10(%rbx), %rsi
ja 0x3171b7
movq 0x10(%rcx), %rcx
movq (%rcx,%rdx,8), %rbp
movq %rbp, %r15
testq %rbp, %rbp
jne 0x317011
movl $0x18, %edi
cmpq $0x0, 0x28(%rbx)
jne 0x316f8c
movl 0xc0(%rbx), %ecx
addl 0xe0(%rbx), %ecx
addl 0xb8(%rbx), %ecx
movl 0x68(%rbx), %edx
imull %eax, %edx
addl %ecx, %edx
movq 0x90(%rbx), %rcx
addq %rdx, %rcx
addq $0x7, %rcx
movq %rcx, %rdx
shrq $0x3, %rdx
andl $0x7, %ecx
cmpq $0x1, %rcx
sbbq $-0x1, %rdx
movq 0x88(%rbx), %rsi
leaq 0x18(%rdx), %rdi
xorl %r8d, %r8d
testb $0x3, %dl
setne %r8b
movabsq $0x7ffffffffffffffc, %rcx # imm = 0x7FFFFFFFFFFFFFFC
imull 0x6c(%rbx), %eax
andq %rcx, %rdi
addq %rsi, %rax
addq $0x7, %rax
movq %rax, %rdx
shrq $0x3, %rdx
andl $0x7, %eax
cmpq $0x1, %rax
sbbq $-0x1, %rdx
addq %rdi, %rdx
leaq (%rdx,%r8,4), %rax
xorl %edx, %edx
testb $0x7, %al
setne %dl
addq $-0x4, %rcx
andq %rax, %rcx
leaq (%rcx,%rdx,8), %rdi
leaq 0xd312d(%rip), %rsi     # 0x3ea0c0
movl $0x2ea, %edx            # imm = 0x2EA
callq 0x1092b2
movq %rax, %r15
cmpq $0x0, 0x28(%rbx)
jne 0x317011
leaq 0x18(%r15), %rax
movq %rax, 0x10(%r15)
movl 0xc0(%rbx), %eax
addl 0xe0(%rbx), %eax
addl 0xb8(%rbx), %eax
movl 0xb0(%rbx), %ecx
imull 0x68(%rbx), %ecx
addl %eax, %ecx
movq 0x90(%rbx), %rax
addq %rcx, %rax
addq $0x7, %rax
movq %rax, %rcx
shrq $0x3, %rcx
andl $0x7, %eax
cmpq $0x1, %rax
sbbq $-0x1, %rcx
leaq 0x18(%rcx), %rax
xorl %edx, %edx
testb $0x3, %cl
setne %dl
movabsq $0x7ffffffffffffffc, %rcx # imm = 0x7FFFFFFFFFFFFFFC
andq %rax, %rcx
addq %r15, %rcx
leaq (%rcx,%rdx,4), %rax
movq %rax, 0x8(%r15)
movq 0x28(%rbx), %rdi
movl 0xe0(%rbx), %eax
movl 0xc0(%rbx), %edx
leal (%rdx,%rax), %ecx
addl 0xb8(%rbx), %ecx
movl 0xb0(%rbx), %r13d
imull 0x68(%rbx), %r13d
addl %ecx, %r13d
addq 0x90(%rbx), %r13
imulq %r13, %r14
testq %rdi, %rdi
je 0x317092
movq %r14, %rcx
shrq $0x3, %rcx
addq %rcx, %rdi
movq %rdi, 0x10(%r15)
andl $0x7, %r14d
movl %r14d, 0x4(%r15)
addq %rax, %r14
movq %r14, %rsi
callq 0x2fcc2c
movq 0x28(%rbx), %rcx
addq 0x38(%rbx), %rcx
subq 0x30(%rbx), %rcx
movq %rax, %rdx
shrq $0x3, %rdx
addq %rcx, %rdx
movq %rdx, 0x8(%r15)
andl $0x7, %eax
movl %eax, (%r15)
movq %r15, %rax
jmp 0x31713f
movq 0x18(%rbx), %r12
movq %r14, %rsi
shrq $0x3, %rsi
addq 0x30(%rbx), %rsi
movq %r12, %rdi
xorl %edx, %edx
callq 0x17cf0
testl %eax, %eax
jne 0x317124
addq $0x7, %r13
movq %r12, %rcx
movq %r13, %r12
shrq $0x3, %r12
andl $0x7, %r13d
cmpq $0x1, %r13
sbbq $-0x1, %r12
movq 0x10(%r15), %rdi
movl $0x1, %esi
movq %r12, %rdx
movq %rcx, %r13
callq 0x17b40
cmpq %r12, %rax
jne 0x317124
andl $0x7, %r14d
movl %r14d, 0x4(%r15)
movl 0xc0(%rbx), %edx
movl 0xe0(%rbx), %eax
addq %rax, %r14
movq 0x10(%r15), %rdi
movq %r14, %rsi
callq 0x2fcc2c
movq %rax, %r14
movq %rax, %rsi
shrq $0x3, %rsi
addq 0x38(%rbx), %rsi
movq %r13, %r12
movq %r13, %rdi
xorl %edx, %edx
callq 0x17cf0
testl %eax, %eax
je 0x31714e
testq %rbp, %rbp
jne 0x31713d
leaq 0xd2f90(%rip), %rsi     # 0x3ea0c0
movq %r15, %rdi
movl $0x2f2, %edx            # imm = 0x2F2
callq 0x109670
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testq %rbp, %rbp
setne %bpl
andl $0x7, %r14d
movl %r14d, (%r15)
movq 0x8(%r15), %rdi
movl 0xb0(%rbx), %eax
imull 0x6c(%rbx), %eax
movq 0x88(%rbx), %rcx
addq %rcx, %rax
addq $0x7, %rax
movq %rax, %rdx
shrq $0x3, %rdx
andl $0x7, %eax
cmpq $0x1, %rax
sbbq $-0x1, %rdx
movl $0x1, %esi
movq %r12, %rcx
callq 0x17b40
movq %r12, %rdi
callq 0x17f00
movl %eax, %ecx
xorl %eax, %eax
testl %ecx, %ecx
sete %cl
cmoveq %r15, %rax
orb %bpl, %cl
je 0x317129
jmp 0x31713f
callq 0x91e64