// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/core/encseq.c
// Function: gt_encseq_sequence2bytecode
void gt_encseq_sequence2bytecode(GtUchar *dest,
                                 const GtEncseq *encseq,
                                 GtUword startindex,
                                 GtUword len)
{
  if (encseq->sat == GT_ACCESS_TYPE_DIRECTACCESS)
    gt_encseq_plainseq2bytecode(dest, encseq->plainseq + startindex, len);
  else
    encseq2bytecode(dest, encseq, startindex, len);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
movl (%rsi), %eax
testl %eax, %eax
je 0xa1c1e
testq %rbx, %rbx
je 0xa1e83
cmpq $0x0, 0x280(%r15)
je 0xa1c41
cmpq $0x3, %rcx
jb 0xa1cdc
movq %rcx, %r10
leaq (%r14,%rcx), %rax
addq $-0x3, %rax
leaq (%r14,%r14), %rdx
xorl %r12d, %r12d
cmpq %rax, %r14
jae 0xa1ce2
movq 0x280(%r15), %rsi
movq %r14, %rcx
shrq $0x5, %rcx
movq (%rsi,%rcx,8), %r8
movl %edx, %ecx
notb %cl
andb $0x3e, %cl
shrq %cl, %r8
shlb $0x6, %r8b
leaq 0x1(%r14), %rcx
shrq $0x5, %rcx
movq (%rsi,%rcx,8), %rdi
leal 0x2(%rdx), %ecx
notb %cl
andb $0x3e, %cl
shrq %cl, %rdi
shlb $0x4, %dil
andb $0x30, %dil
leaq 0x2(%r14), %rcx
shrq $0x5, %rcx
movq (%rsi,%rcx,8), %r9
leal 0x4(%rdx), %ecx
notb %cl
andb $0x3e, %cl
shrq %cl, %r9
orb %r8b, %dil
shlb $0x2, %r9b
leaq 0x3(%r14), %rcx
shrq $0x5, %rcx
movq (%rsi,%rcx,8), %rsi
leal 0x6(%rdx), %ecx
notb %cl
andb $0x3e, %cl
shrq %cl, %rsi
andb $0xc, %r9b
orb %dil, %r9b
andb $0x3, %sil
orb %r9b, %sil
movb %sil, (%rbx,%r12)
addq $0x4, %r14
incq %r12
addq $0x8, %rdx
jmp 0xa1b7f
addq 0x290(%r15), %r14
movq %rbx, %rdi
movq %r14, %rsi
movq %rcx, %rdx
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xa1ab8
cmpl $0x1, %eax
jne 0xa1dfb
cmpq $0x3, %rcx
movq %rcx, 0x10(%rsp)
jb 0xa1dc3
movq %rbx, 0x8(%rsp)
leaq (%r14,%rcx), %rbx
addq $-0x3, %rbx
xorl %r12d, %r12d
cmpq %rbx, %r14
jae 0xa1dc8
movq 0x2a0(%r15), %rdi
movq %r14, %rsi
callq 0xa258b
movl %eax, %ebp
shll $0x6, %ebp
movq 0x2a0(%r15), %rdi
leaq 0x1(%r14), %rsi
callq 0xa258b
movl %eax, %r13d
shll $0x4, %r13d
orl %ebp, %r13d
movq 0x2a0(%r15), %rdi
leaq 0x2(%r14), %rsi
callq 0xa258b
movl %eax, %ebp
shll $0x2, %ebp
movq 0x2a0(%r15), %rdi
leaq 0x3(%r14), %rsi
callq 0xa258b
orl %ebp, %eax
orl %r13d, %eax
movq 0x8(%rsp), %rcx
movb %al, (%rcx,%r12)
addq $0x4, %r14
incq %r12
jmp 0xa1c69
movq %rcx, %r10
xorl %r12d, %r12d
andl $0x3, %r10d
leaq 0x49ca3(%rip), %rax     # 0xeb990
movslq (%rax,%r10,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq 0x280(%r15), %rax
movq %r14, %rcx
shrq $0x5, %rcx
movq (%rax,%rcx,8), %rax
notl %r14d
addl %r14d, %r14d
movl %r14d, %ecx
shrq %cl, %rax
jmp 0xa1df4
movq 0x280(%r15), %rax
movq %r14, %rcx
shrq $0x5, %rcx
movq (%rax,%rcx,8), %rdx
movl %r14d, %ecx
notl %ecx
addl %ecx, %ecx
shrq %cl, %rdx
incq %r14
movq %r14, %rcx
shrq $0x5, %rcx
movq (%rax,%rcx,8), %rax
notl %r14d
addl %r14d, %r14d
movl %r14d, %ecx
shrq %cl, %rax
shlb $0x6, %dl
shlb $0x4, %al
andb $0x30, %al
orb %dl, %al
jmp 0xa1df7
movq 0x280(%r15), %rax
movq %r14, %rcx
shrq $0x5, %rcx
movq (%rax,%rcx,8), %rdx
movl %r14d, %ecx
notl %ecx
addl %ecx, %ecx
shrq %cl, %rdx
shlb $0x6, %dl
leaq 0x1(%r14), %rcx
movq %rcx, %rsi
shrq $0x5, %rsi
movq (%rax,%rsi,8), %rsi
notl %ecx
addl %ecx, %ecx
shrq %cl, %rsi
shlb $0x4, %sil
andb $0x30, %sil
addq $0x2, %r14
movq %r14, %rcx
shrq $0x5, %rcx
movq (%rax,%rcx,8), %rax
notl %r14d
addl %r14d, %r14d
movl %r14d, %ecx
shrq %cl, %rax
orb %dl, %sil
shlb $0x2, %al
andb $0xc, %al
orb %sil, %al
jmp 0xa1df7
xorl %r12d, %r12d
jmp 0xa1dcd
movq 0x8(%rsp), %rbx
movq 0x10(%rsp), %rcx
andl $0x3, %ecx
leaq 0x49bc4(%rip), %rax     # 0xeb9a0
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq 0x2a0(%r15), %rdi
movq %r14, %rsi
callq 0xa258b
shlb $0x6, %al
movb %al, (%rbx,%r12)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x2a0(%r15), %rdi
movq %r14, %rsi
callq 0xa258b
movl %eax, %ebp
shll $0x6, %ebp
movq 0x2a0(%r15), %rdi
incq %r14
movq %r14, %rsi
callq 0xa258b
shll $0x4, %eax
orl %ebp, %eax
jmp 0xa1df7
movq 0x2a0(%r15), %rdi
movq %r14, %rsi
callq 0xa258b
movl %eax, %ebp
shll $0x6, %ebp
movq 0x2a0(%r15), %rdi
leaq 0x1(%r14), %rsi
callq 0xa258b
movl %eax, %r13d
shll $0x4, %r13d
orl %ebp, %r13d
movq 0x2a0(%r15), %rdi
addq $0x2, %r14
movq %r14, %rsi
callq 0xa258b
shll $0x2, %eax
orl %r13d, %eax
jmp 0xa1df7
movq 0x8c12e(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x281d2(%rip), %rsi     # 0xca066
leaq 0x4cfc1(%rip), %rdx     # 0xeee5c
leaq 0x4cfd9(%rip), %rcx     # 0xeee7b
leaq 0x49cf1(%rip), %r8      # 0xebb9a
movl $0x8c, %r9d
xorl %eax, %eax
callq 0xb8c0
callq 0xb300