// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/gap_str.c
// Function: gt_gap_str_new
static GtGapStr *gt_gap_str_new(const char *str, bool is_protein, GtError *err)
{
  GtGapStr *gap_str;
  gap_str = gt_malloc(sizeof (GtGapStr));
  gap_str->is_protein_alignment = is_protein;
  gap_str->step = is_protein ? 3 : 1;
  gap_str->ali_len = 0;
  gap_str->ref_len = 0;
  gap_str->tar_len = 0;
  if (gt_gap_str_parse(gap_str, str, err) != 0) {
    gt_free(gap_str);
    return NULL;
  }
  return gap_str;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %r15
movl %esi, %ebp
movq %rdi, %r14
leaq 0x78dc4(%rip), %rsi     # 0xdd8c4
pushq $0x28
popq %rdi
movl $0x87, %edx
callq 0xccb0
movq %rax, %rbx
movb %bpl, 0x20(%rax)
movl %ebp, %eax
leaq 0x1(,%rax,2), %rax
movq %rax, 0x18(%rbx)
pxor %xmm0, %xmm0
movdqu %xmm0, (%rbx)
andq $0x0, 0x10(%rbx)
movq %r14, %rdi
callq 0x4f8ae
testq %r14, %r14
je 0x64dd8
movq %rax, %r13
testq %r15, %r15
je 0x64b58
movq %r15, %rdi
callq 0xc103
testb %al, %al
jne 0x64e2c
movq %r15, 0x8(%rsp)
callq 0x124cc
movq %rax, %r12
movq %rax, %rdi
callq 0x127af
movq %r13, %rdi
callq 0xb260
pushq $0x20
popq %rcx
movq %r12, %rdi
movq %r13, 0x10(%rsp)
movq %r13, %rsi
movq %rax, %rdx
callq 0x124e1
movq %r12, %rdi
callq 0x127fd
movq %rax, %r13
xorl %r15d, %r15d
xorl %ebp, %ebp
testl %ebp, %ebp
jne 0x64d12
cmpq %r13, %r15
jae 0x64d12
movq %r12, %rdi
movq %r15, %rsi
callq 0x12765
movq %rax, %rbp
movq %rax, %rdi
callq 0xb260
movzbl (%rbp), %r14d
cmpl $0x1, %eax
jle 0x64d34
leal -0x44(%r14), %eax
cmpl $0x9, %eax
ja 0x64be9
leaq 0x78c70(%rip), %rcx     # 0xdd850
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpl $0x52, %r14d
jne 0x64c35
cmpb $0x0, 0x20(%rbx)
je 0x64c47
incq %rbp
movq %rsp, %rdi
movq %rbp, %rsi
callq 0x117e9
testl %eax, %eax
jne 0x64d54
movzbl %r14b, %eax
leal -0x44(%rax), %ecx
cmpl $0x9, %ecx
ja 0x64c65
leaq 0x78c5a(%rip), %rdx     # 0xdd878
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
movq (%rsp), %rax
imulq 0x18(%rbx), %rax
jmp 0x64d01
movsbl %r14b, %edx
movq 0x8(%rsp), %rdi
leaq 0x78d63(%rip), %rsi     # 0xdd9a8
jmp 0x64c56
movq 0x8(%rsp), %rdi
leaq 0x78d07(%rip), %rsi     # 0xdd95a
movl %r14d, %edx
xorl %eax, %eax
callq 0xc007
pushq $-0x1
popq %rbp
jmp 0x64d0a
cmpl $0x52, %eax
jne 0x64dae
movq (%rbx), %rax
movq (%rsp), %rdx
cmpq %rdx, %rax
jb 0x64c85
movq 0x10(%rbx), %rcx
xorl %ebp, %ebp
cmpq %rdx, %rcx
jae 0x64ca6
movq 0x8(%rsp), %rdi
leaq 0x78d6f(%rip), %rsi     # 0xdda00
xorl %eax, %eax
callq 0xc007
movq (%rsp), %rdx
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
pushq $-0x1
popq %rbp
subq %rdx, %rax
movq %rax, (%rbx)
subq %rdx, %rcx
movq %rcx, 0x10(%rbx)
jmp 0x64d0a
movq (%rsp), %rax
imulq 0x18(%rbx), %rax
addq %rax, 0x10(%rbx)
movdqu (%rbx), %xmm0
movq %rax, %xmm1
pshufd $0x44, %xmm1, %xmm1     # xmm1 = xmm1[0,1,0,1]
paddq %xmm0, %xmm1
movdqu %xmm1, (%rbx)
jmp 0x64d08
movq (%rsp), %rax
imulq 0x18(%rbx), %rax
movdqu 0x8(%rbx), %xmm0
movq %rax, %xmm1
pshufd $0x44, %xmm1, %xmm1     # xmm1 = xmm1[0,1,0,1]
paddq %xmm0, %xmm1
movdqu %xmm1, 0x8(%rbx)
jmp 0x64d08
movq (%rsp), %rax
addq %rax, (%rbx)
addq %rax, 0x10(%rbx)
xorl %ebp, %ebp
incq %r15
jmp 0x64b9b
leaq 0x78bab(%rip), %rsi     # 0xdd8c4
pushq $0x7f
popq %rdx
movq 0x10(%rsp), %rdi
callq 0xd249
movq %r12, %rdi
callq 0x1283e
testl %ebp, %ebp
jne 0x64d86
jmp 0x64d9c
cmpb $0xa, %r14b
je 0x64e02
movzbl %r14b, %eax
cmpl $0x20, %eax
je 0x64e02
leaq 0x78bde(%rip), %rsi     # 0xdd930
jmp 0x64d5b
leaq 0x78c7a(%rip), %rsi     # 0xdd9d5
movq 0x8(%rsp), %rdi
movq %rbp, %rdx
xorl %eax, %eax
callq 0xc007
movq 0x10(%rsp), %rdi
leaq 0x78b4e(%rip), %rsi     # 0xdd8c4
pushq $0x7f
popq %rdx
callq 0xd249
movq %r12, %rdi
callq 0x1283e
leaq 0x78b37(%rip), %rsi     # 0xdd8c4
movq %rbx, %rdi
movl $0x8e, %edx
callq 0xd249
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0xc9203(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x652a7(%rip), %rsi     # 0xca066
leaq 0x79149(%rip), %rdx     # 0xddf0f
leaq 0x78b52(%rip), %rcx     # 0xdd91f
leaq 0x78af0(%rip), %r8      # 0xdd8c4
pushq $0x7a
jmp 0x64e54
movq 0xc91d9(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x6527d(%rip), %rsi     # 0xca066
leaq 0x78b20(%rip), %rdx     # 0xdd910
leaq 0x78b28(%rip), %rcx     # 0xdd91f
leaq 0x78ac6(%rip), %r8      # 0xdd8c4
pushq $0x2b
jmp 0x64e54
movq 0xc91af(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x65253(%rip), %rsi     # 0xca066
leaq 0x78b35(%rip), %rdx     # 0xdd94f
leaq 0x78afe(%rip), %rcx     # 0xdd91f
leaq 0x78a9c(%rip), %r8      # 0xdd8c4
pushq $0x3f
jmp 0x64e54
movq 0xc9185(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x65229(%rip), %rsi     # 0xca066
leaq 0x65815(%rip), %rdx     # 0xca659
leaq 0x78ad4(%rip), %rcx     # 0xdd91f
leaq 0x78a72(%rip), %r8      # 0xdd8c4
pushq $0x2c
popq %r9
xorl %eax, %eax
callq 0xb8c0
callq 0xb300