// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/core/grep.c
// Function: gt_grep_unit_test
int gt_grep_unit_test(GtError *err)
{
  bool match;
  GtStr *escbuf;
  int grep_err, had_err = 0;
  gt_error_check(err);

  grep_err = gt_grep(&match, "a", "a", NULL);
  gt_ensure(!grep_err);
  gt_ensure(match);
  grep_err = gt_grep_nt(&match, "a", "abb", 1, NULL);
  gt_ensure(!grep_err);
  gt_ensure(match);
  grep_err = gt_grep_nt(&match, "b", "abb", 2, NULL);
  gt_ensure(!grep_err);
  gt_ensure(match);

  grep_err = gt_grep(&match, "b", "a", NULL);
  gt_ensure(!grep_err);
  gt_ensure(!match);
  grep_err = gt_grep_nt(&match, "b", "ab", 1, NULL);
  gt_ensure(!grep_err);
  gt_ensure(!match);
  grep_err = gt_grep_nt(&match, "b", "b", 0, NULL);
  gt_ensure(!grep_err);
  gt_ensure(!match);

  grep_err =  gt_grep(&match, "^foo ", "foo bar", NULL);
  gt_ensure(!grep_err);
  gt_ensure(match);
  grep_err =  gt_grep(&match, "^foo ", "baz foo bar", NULL);
  gt_ensure(!grep_err);
  gt_ensure(!match);

  grep_err =  gt_grep(&match, "aba", "wenbapzbpqSayhzzabaZZqyghaAAahhaA", NULL);
  gt_ensure(!grep_err);
  gt_ensure(match);

  grep_err = gt_grep(&match, "aba", "wenbapzbpqSayhzzaBaZZqyghaAAahhaA", NULL);
  gt_ensure(!grep_err);
  gt_ensure(!match);

  grep_err = gt_grep(&match, "^aba", "abawenbapzbpqSayhzzZZqyghaAAahhaA", NULL);
  gt_ensure(!grep_err);
  gt_ensure(match);

  grep_err = gt_grep(&match, "^aba", "wenbapzbpqSayhzzabaZZqyghaAAahhaA", NULL);
  gt_ensure(!grep_err);
  gt_ensure(!match);

  escbuf = gt_str_new();

  grep_err = gt_grep(&match, "aba.", "wenbapzbpqSayhzzabaZZqyghaAAahhaA", NULL);
  gt_ensure(!grep_err);
  gt_ensure(match);

  gt_grep_escape_extended(escbuf, "aba." , 4);
  grep_err = gt_grep(&match, gt_str_get(escbuf),
                     "wenbapzbpqSayhzzabaZZqyghaAAahhaA", NULL);
  gt_ensure(!grep_err);
  gt_ensure(!match);

  gt_grep_escape_extended(escbuf, "aba." , 4);
  grep_err = gt_grep(&match, gt_str_get(escbuf),
                     "wenbapzbpqSayhzzaba.ZZqyghaAAahhaA", NULL);
  gt_ensure(!grep_err);
  gt_ensure(match);

  gt_str_delete(escbuf);

  return had_err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
testq %rdi, %rdi
je 0x5550f
movq %rbx, %rdi
callq 0xc103
testb %al, %al
jne 0x55d6d
leaq 0x83c0e(%rip), %rdx     # 0xd9124
leaq 0x7(%rsp), %rdi
movq %rdx, %rsi
xorl %ecx, %ecx
callq 0x554b5
testl %eax, %eax
je 0x5554b
leaq 0x76c29(%rip), %rsi     # 0xcc159
leaq 0x84ccd(%rip), %rdx     # 0xda204
leaq 0x84cb4(%rip), %rcx     # 0xda1f2
leaq 0x84c80(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
pushq $0x6f
jmp 0x55575
movb $0x1, %bpl
cmpb $0x0, 0x7(%rsp)
jne 0x55581
leaq 0x76bfd(%rip), %rsi     # 0xcc159
leaq 0x8abfb(%rip), %rdx     # 0xe015e
leaq 0x84c88(%rip), %rcx     # 0xda1f2
leaq 0x84c54(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
pushq $0x70
popq %r9
movq %rbx, %rdi
xorl %eax, %eax
callq 0xc007
leaq 0x83b9c(%rip), %rsi     # 0xd9124
leaq 0x84c7f(%rip), %rdx     # 0xda20e
leaq 0x7(%rsp), %rdi
pushq $0x1
popq %rcx
xorl %r8d, %r8d
callq 0x552bb
testb %bpl, %bpl
je 0x555d6
testl %eax, %eax
je 0x555d6
leaq 0x76baa(%rip), %rsi     # 0xcc159
leaq 0x84c4e(%rip), %rdx     # 0xda204
leaq 0x84c35(%rip), %rcx     # 0xda1f2
leaq 0x84c01(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
pushq $0x72
popq %r9
movq %rbx, %rdi
xorl %eax, %eax
callq 0xc007
jmp 0x55609
testb %bpl, %bpl
je 0x55607
movb $0x1, %bpl
cmpb $0x0, 0x7(%rsp)
jne 0x55609
leaq 0x76b6d(%rip), %rsi     # 0xcc159
leaq 0x8ab6b(%rip), %rdx     # 0xe015e
leaq 0x84bf8(%rip), %rcx     # 0xda1f2
leaq 0x84bc4(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
pushq $0x73
jmp 0x555c8
xorl %ebp, %ebp
leaq 0x84a7c(%rip), %rsi     # 0xda08c
leaq 0x84bf7(%rip), %rdx     # 0xda20e
leaq 0x7(%rsp), %rdi
pushq $0x2
popq %rcx
xorl %r8d, %r8d
callq 0x552bb
testb %bpl, %bpl
je 0x5565e
testl %eax, %eax
je 0x5565e
leaq 0x76b22(%rip), %rsi     # 0xcc159
leaq 0x84bc6(%rip), %rdx     # 0xda204
leaq 0x84bad(%rip), %rcx     # 0xda1f2
leaq 0x84b79(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
pushq $0x75
popq %r9
movq %rbx, %rdi
xorl %eax, %eax
callq 0xc007
jmp 0x55691
testb %bpl, %bpl
je 0x5568f
movb $0x1, %bpl
cmpb $0x0, 0x7(%rsp)
jne 0x55691
leaq 0x76ae5(%rip), %rsi     # 0xcc159
leaq 0x8aae3(%rip), %rdx     # 0xe015e
leaq 0x84b70(%rip), %rcx     # 0xda1f2
leaq 0x84b3c(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
pushq $0x76
jmp 0x55650
xorl %ebp, %ebp
leaq 0x849f4(%rip), %rsi     # 0xda08c
leaq 0x83a85(%rip), %rdx     # 0xd9124
leaq 0x7(%rsp), %rdi
xorl %ecx, %ecx
callq 0x554b5
testb %bpl, %bpl
je 0x556e2
testl %eax, %eax
je 0x556e2
leaq 0x76a9e(%rip), %rsi     # 0xcc159
leaq 0x84b42(%rip), %rdx     # 0xda204
leaq 0x84b29(%rip), %rcx     # 0xda1f2
leaq 0x84af5(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
pushq $0x79
popq %r9
movq %rbx, %rdi
xorl %eax, %eax
callq 0xc007
jmp 0x55715
testb %bpl, %bpl
je 0x55713
movb $0x1, %bpl
cmpb $0x1, 0x7(%rsp)
jne 0x55715
leaq 0x76a61(%rip), %rsi     # 0xcc159
leaq 0x84b13(%rip), %rdx     # 0xda212
leaq 0x84aec(%rip), %rcx     # 0xda1f2
leaq 0x84ab8(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
pushq $0x7a
jmp 0x556d4
xorl %ebp, %ebp
leaq 0x84970(%rip), %rsi     # 0xda08c
leaq 0x9bb04(%rip), %rdx     # 0xf1227
leaq 0x7(%rsp), %rdi
pushq $0x1
popq %rcx
xorl %r8d, %r8d
callq 0x552bb
testb %bpl, %bpl
je 0x5576a
testl %eax, %eax
je 0x5576a
leaq 0x76a16(%rip), %rsi     # 0xcc159
leaq 0x84aba(%rip), %rdx     # 0xda204
leaq 0x84aa1(%rip), %rcx     # 0xda1f2
leaq 0x84a6d(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
pushq $0x7c
popq %r9
movq %rbx, %rdi
xorl %eax, %eax
callq 0xc007
jmp 0x5579d
testb %bpl, %bpl
je 0x5579b
movb $0x1, %bpl
cmpb $0x1, 0x7(%rsp)
jne 0x5579d
leaq 0x769d9(%rip), %rsi     # 0xcc159
leaq 0x84a8b(%rip), %rdx     # 0xda212
leaq 0x84a64(%rip), %rcx     # 0xda1f2
leaq 0x84a30(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
pushq $0x7d
jmp 0x5575c
xorl %ebp, %ebp
leaq 0x848e8(%rip), %rdx     # 0xda08c
leaq 0x7(%rsp), %rdi
movq %rdx, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x552bb
testb %bpl, %bpl
je 0x557ed
testl %eax, %eax
je 0x557ed
leaq 0x76993(%rip), %rsi     # 0xcc159
leaq 0x84a37(%rip), %rdx     # 0xda204
leaq 0x84a1e(%rip), %rcx     # 0xda1f2
leaq 0x849ea(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
pushq $0x7f
popq %r9
movq %rbx, %rdi
xorl %eax, %eax
callq 0xc007
jmp 0x55827
testb %bpl, %bpl
je 0x55825
movb $0x1, %bpl
cmpb $0x1, 0x7(%rsp)
jne 0x55827
leaq 0x76956(%rip), %rsi     # 0xcc159
leaq 0x84a08(%rip), %rdx     # 0xda212
leaq 0x849e1(%rip), %rcx     # 0xda1f2
leaq 0x849ad(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x80, %r9d
jmp 0x557e4
xorl %ebp, %ebp
leaq 0x849eb(%rip), %rsi     # 0xda219
leaq 0x849ee(%rip), %rdx     # 0xda223
leaq 0x7(%rsp), %rdi
xorl %ecx, %ecx
callq 0x554b5
testb %bpl, %bpl
je 0x5587a
testl %eax, %eax
je 0x5587a
leaq 0x76908(%rip), %rsi     # 0xcc159
leaq 0x849ac(%rip), %rdx     # 0xda204
leaq 0x84993(%rip), %rcx     # 0xda1f2
leaq 0x8495f(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x83, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0x558b4
testb %bpl, %bpl
je 0x558b2
movb $0x1, %bpl
cmpb $0x0, 0x7(%rsp)
jne 0x558b4
leaq 0x768c9(%rip), %rsi     # 0xcc159
leaq 0x8a8c7(%rip), %rdx     # 0xe015e
leaq 0x84954(%rip), %rcx     # 0xda1f2
leaq 0x84920(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x84, %r9d
jmp 0x55871
xorl %ebp, %ebp
leaq 0x8495e(%rip), %rsi     # 0xda219
leaq 0x8495d(%rip), %rdx     # 0xda21f
leaq 0x7(%rsp), %rdi
xorl %ecx, %ecx
callq 0x554b5
testb %bpl, %bpl
je 0x55907
testl %eax, %eax
je 0x55907
leaq 0x7687b(%rip), %rsi     # 0xcc159
leaq 0x8491f(%rip), %rdx     # 0xda204
leaq 0x84906(%rip), %rcx     # 0xda1f2
leaq 0x848d2(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x86, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0x55941
testb %bpl, %bpl
je 0x5593f
movb $0x1, %bpl
cmpb $0x1, 0x7(%rsp)
jne 0x55941
leaq 0x7683c(%rip), %rsi     # 0xcc159
leaq 0x848ee(%rip), %rdx     # 0xda212
leaq 0x848c7(%rip), %rcx     # 0xda1f2
leaq 0x84893(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x87, %r9d
jmp 0x558fe
xorl %ebp, %ebp
leaq 0x84928(%rip), %rsi     # 0xda270
leaq 0x848dc(%rip), %rdx     # 0xda22b
leaq 0x7(%rsp), %rdi
xorl %ecx, %ecx
callq 0x554b5
testb %bpl, %bpl
je 0x55994
testl %eax, %eax
je 0x55994
leaq 0x767ee(%rip), %rsi     # 0xcc159
leaq 0x84892(%rip), %rdx     # 0xda204
leaq 0x84879(%rip), %rcx     # 0xda1f2
leaq 0x84845(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x8a, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0x559ce
testb %bpl, %bpl
je 0x559cc
movb $0x1, %bpl
cmpb $0x0, 0x7(%rsp)
jne 0x559ce
leaq 0x767af(%rip), %rsi     # 0xcc159
leaq 0x8a7ad(%rip), %rdx     # 0xe015e
leaq 0x8483a(%rip), %rcx     # 0xda1f2
leaq 0x84806(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x8b, %r9d
jmp 0x5598b
xorl %ebp, %ebp
leaq 0x8489b(%rip), %rsi     # 0xda270
leaq 0x84871(%rip), %rdx     # 0xda24d
leaq 0x7(%rsp), %rdi
xorl %ecx, %ecx
callq 0x554b5
testb %bpl, %bpl
je 0x55a21
testl %eax, %eax
je 0x55a21
leaq 0x76761(%rip), %rsi     # 0xcc159
leaq 0x84805(%rip), %rdx     # 0xda204
leaq 0x847ec(%rip), %rcx     # 0xda1f2
leaq 0x847b8(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x8e, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0x55a5b
testb %bpl, %bpl
je 0x55a59
movb $0x1, %bpl
cmpb $0x1, 0x7(%rsp)
jne 0x55a5b
leaq 0x76722(%rip), %rsi     # 0xcc159
leaq 0x847d4(%rip), %rdx     # 0xda212
leaq 0x847ad(%rip), %rcx     # 0xda1f2
leaq 0x84779(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x8f, %r9d
jmp 0x55a18
xorl %ebp, %ebp
leaq 0x8480d(%rip), %rsi     # 0xda26f
leaq 0x8480b(%rip), %rdx     # 0xda274
leaq 0x7(%rsp), %rdi
xorl %ecx, %ecx
callq 0x554b5
testb %bpl, %bpl
je 0x55aae
testl %eax, %eax
je 0x55aae
leaq 0x766d4(%rip), %rsi     # 0xcc159
leaq 0x84778(%rip), %rdx     # 0xda204
leaq 0x8475f(%rip), %rcx     # 0xda1f2
leaq 0x8472b(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x92, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0x55ae8
testb %bpl, %bpl
je 0x55ae6
movb $0x1, %bpl
cmpb $0x0, 0x7(%rsp)
jne 0x55ae8
leaq 0x76695(%rip), %rsi     # 0xcc159
leaq 0x8a693(%rip), %rdx     # 0xe015e
leaq 0x84720(%rip), %rcx     # 0xda1f2
leaq 0x846ec(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x93, %r9d
jmp 0x55aa5
xorl %ebp, %ebp
leaq 0x84780(%rip), %rsi     # 0xda26f
leaq 0x84735(%rip), %rdx     # 0xda22b
leaq 0x7(%rsp), %rdi
xorl %ecx, %ecx
callq 0x554b5
testb %bpl, %bpl
je 0x55b3b
testl %eax, %eax
je 0x55b3b
leaq 0x76647(%rip), %rsi     # 0xcc159
leaq 0x846eb(%rip), %rdx     # 0xda204
leaq 0x846d2(%rip), %rcx     # 0xda1f2
leaq 0x8469e(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x96, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0x55b75
testb %bpl, %bpl
je 0x55b73
movb $0x1, %bpl
cmpb $0x1, 0x7(%rsp)
jne 0x55b75
leaq 0x76608(%rip), %rsi     # 0xcc159
leaq 0x846ba(%rip), %rdx     # 0xda212
leaq 0x84693(%rip), %rcx     # 0xda1f2
leaq 0x8465f(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x97, %r9d
jmp 0x55b32
xorl %ebp, %ebp
callq 0x13d5c
movq %rax, %r14
leaq 0x84712(%rip), %rsi     # 0xda296
leaq 0x846a0(%rip), %rdx     # 0xda22b
leaq 0x7(%rsp), %rdi
xorl %ecx, %ecx
callq 0x554b5
testb %bpl, %bpl
je 0x55bd0
testl %eax, %eax
je 0x55bd0
leaq 0x765b2(%rip), %rsi     # 0xcc159
leaq 0x84656(%rip), %rdx     # 0xda204
leaq 0x8463d(%rip), %rcx     # 0xda1f2
leaq 0x84609(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x9c, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0x55c0a
testb %bpl, %bpl
je 0x55c08
movb $0x1, %bpl
cmpb $0x0, 0x7(%rsp)
jne 0x55c0a
leaq 0x76573(%rip), %rsi     # 0xcc159
leaq 0x8a571(%rip), %rdx     # 0xe015e
leaq 0x845fe(%rip), %rcx     # 0xda1f2
leaq 0x845ca(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x9d, %r9d
jmp 0x55bc7
xorl %ebp, %ebp
leaq 0x84685(%rip), %rsi     # 0xda296
pushq $0x4
popq %rdx
movq %r14, %rdi
callq 0x551fc
movq %r14, %rdi
callq 0x143d2
leaq 0x84600(%rip), %rdx     # 0xda22b
leaq 0x7(%rsp), %rdi
movq %rax, %rsi
xorl %ecx, %ecx
callq 0x554b5
testb %bpl, %bpl
je 0x55c73
testl %eax, %eax
je 0x55c73
leaq 0x7650f(%rip), %rsi     # 0xcc159
leaq 0x845b3(%rip), %rdx     # 0xda204
leaq 0x8459a(%rip), %rcx     # 0xda1f2
leaq 0x84566(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0xa2, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0x55cad
testb %bpl, %bpl
je 0x55cab
movb $0x1, %bpl
cmpb $0x1, 0x7(%rsp)
jne 0x55cad
leaq 0x764d0(%rip), %rsi     # 0xcc159
leaq 0x84582(%rip), %rdx     # 0xda212
leaq 0x8455b(%rip), %rcx     # 0xda1f2
leaq 0x84527(%rip), %r8      # 0xda1c5
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0xa3, %r9d
jmp 0x55c6a
xorl %ebp, %ebp
leaq 0x845e2(%rip), %rsi     # 0xda296
pushq $0x4
popq %rdx
movq %r14, %rdi
callq 0x551fc
movq %r14, %rdi
callq 0x143d2
leaq 0x845cd(%rip), %rdx     # 0xda29b
leaq 0x7(%rsp), %rdi
movq %rax, %rsi
xorl %ecx, %ecx
callq 0x554b5
testb %bpl, %bpl
je 0x55d17
testl %eax, %eax
je 0x55d17
leaq 0x7646c(%rip), %rsi     # 0xcc159
leaq 0x84510(%rip), %rdx     # 0xda204
leaq 0x844f7(%rip), %rcx     # 0xda1f2
leaq 0x844c3(%rip), %r8      # 0xda1c5
movq %rbx, %rdi
movl $0xa8, %r9d
xorl %eax, %eax
callq 0xc007
pushq $-0x1
popq %rbp
jmp 0x55d58
pushq $-0x1
popq %r15
testb %bpl, %bpl
je 0x55d55
xorl %ebp, %ebp
cmpb $0x0, 0x7(%rsp)
jne 0x55d58
leaq 0x76429(%rip), %rsi     # 0xcc159
leaq 0x8a427(%rip), %rdx     # 0xe015e
leaq 0x844b4(%rip), %rcx     # 0xda1f2
leaq 0x84480(%rip), %r8      # 0xda1c5
movq %rbx, %rdi
movl $0xa9, %r9d
xorl %eax, %eax
callq 0xc007
movl %r15d, %ebp
movq %r14, %rdi
callq 0x152db
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq 0xd8244(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x742e8(%rip), %rsi     # 0xca066
leaq 0x748d4(%rip), %rdx     # 0xca659
leaq 0x84466(%rip), %rcx     # 0xda1f2
leaq 0x84432(%rip), %r8      # 0xda1c5
pushq $0x6c
popq %r9
xorl %eax, %eax
callq 0xb8c0
callq 0xb300
nop