// File: /workspace/github_c_makefile_star2_O3/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 0x76a73
movq %rbx, %rdi
callq 0x34fea
testb %al, %al
jne 0x77238
leaq 0x796fa(%rip), %rdx     # 0xf0174
leaq 0x7(%rsp), %rdi
movl $0x1, %ecx
movq %rdx, %rsi
xorl %r8d, %r8d
callq 0x76893
testl %eax, %eax
je 0x76aba
leaq 0x6c6bf(%rip), %rsi     # 0xe3159
leaq 0x7a7b3(%rip), %rdx     # 0xf1254
leaq 0x7a79a(%rip), %rcx     # 0xf1242
leaq 0x7a766(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x6f, %r9d
jmp 0x76b38
cmpb $0x0, 0x7(%rsp)
je 0x76b13
leaq 0x796ac(%rip), %rsi     # 0xf0174
leaq 0x7a78f(%rip), %rdx     # 0xf125e
leaq 0x7(%rsp), %rdi
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x76893
testl %eax, %eax
je 0x76ea7
leaq 0x6c669(%rip), %rsi     # 0xe3159
leaq 0x7a75d(%rip), %rdx     # 0xf1254
leaq 0x7a744(%rip), %rcx     # 0xf1242
leaq 0x7a710(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x72, %r9d
jmp 0x76f21
leaq 0x6c63f(%rip), %rsi     # 0xe3159
leaq 0x802ed(%rip), %rdx     # 0xf6e0e
leaq 0x7a71a(%rip), %rcx     # 0xf1242
leaq 0x7a6e6(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x70, %r9d
xorl %eax, %eax
callq 0x34f1f
leaq 0x7962e(%rip), %rsi     # 0xf0174
leaq 0x7a711(%rip), %rdx     # 0xf125e
leaq 0x7(%rsp), %rdi
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x76893
leaq 0x7a576(%rip), %rsi     # 0xf10dc
leaq 0x7a6f1(%rip), %rdx     # 0xf125e
leaq 0x7(%rsp), %rdi
movl $0x2, %ecx
xorl %r8d, %r8d
callq 0x76893
leaq 0x7a556(%rip), %rsi     # 0xf10dc
leaq 0x795e7(%rip), %rdx     # 0xf0174
leaq 0x7(%rsp), %rdi
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x76893
leaq 0x7a536(%rip), %rsi     # 0xf10dc
leaq 0x913ce(%rip), %rdx     # 0x107f7b
leaq 0x7(%rsp), %rdi
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x76893
leaq 0x7a516(%rip), %rdx     # 0xf10dc
leaq 0x7(%rsp), %rdi
movq %rdx, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x76893
leaq 0x7a68a(%rip), %rsi     # 0xf1269
leaq 0x7a68d(%rip), %rdx     # 0xf1273
leaq 0x7(%rsp), %rdi
movl $0x7, %ecx
xorl %r8d, %r8d
callq 0x76893
leaq 0x7a66a(%rip), %rsi     # 0xf1269
leaq 0x7a669(%rip), %rdx     # 0xf126f
leaq 0x7(%rsp), %rdi
movl $0xb, %ecx
xorl %r8d, %r8d
callq 0x76893
leaq 0x7a6a1(%rip), %rsi     # 0xf12c0
leaq 0x7a655(%rip), %rdx     # 0xf127b
leaq 0x7(%rsp), %rdi
movl $0x21, %ecx
xorl %r8d, %r8d
callq 0x76893
leaq 0x7a681(%rip), %rsi     # 0xf12c0
leaq 0x7a657(%rip), %rdx     # 0xf129d
leaq 0x7(%rsp), %rdi
movl $0x21, %ecx
xorl %r8d, %r8d
callq 0x76893
leaq 0x7a660(%rip), %rsi     # 0xf12bf
leaq 0x7a65e(%rip), %rdx     # 0xf12c4
leaq 0x7(%rsp), %rdi
movl $0x21, %ecx
xorl %r8d, %r8d
callq 0x76893
leaq 0x7a640(%rip), %rsi     # 0xf12bf
leaq 0x7a5f5(%rip), %rdx     # 0xf127b
xorl %r15d, %r15d
leaq 0x7(%rsp), %rdi
movl $0x21, %ecx
xorl %r8d, %r8d
callq 0x76893
callq 0x3b728
movq %rax, %r14
leaq 0x7a63c(%rip), %rsi     # 0xf12e6
leaq 0x7a5ca(%rip), %rdx     # 0xf127b
leaq 0x7(%rsp), %rdi
movl $0x21, %ecx
xorl %r8d, %r8d
callq 0x76893
testb %r15b, %r15b
je 0x76cfc
testl %eax, %eax
je 0x76cfc
leaq 0x6c486(%rip), %rsi     # 0xe3159
leaq 0x7a57a(%rip), %rdx     # 0xf1254
leaq 0x7a561(%rip), %rcx     # 0xf1242
leaq 0x7a52d(%rip), %r8      # 0xf1215
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x9c, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0x76d36
testb %r15b, %r15b
je 0x76d34
movb $0x1, %bpl
cmpb $0x0, 0x7(%rsp)
jne 0x76d36
leaq 0x6c447(%rip), %rsi     # 0xe3159
leaq 0x800f5(%rip), %rdx     # 0xf6e0e
leaq 0x7a522(%rip), %rcx     # 0xf1242
leaq 0x7a4ee(%rip), %r8      # 0xf1215
xorl %ebp, %ebp
movq %rbx, %rdi
movl $0x9d, %r9d
jmp 0x76cf3
xorl %ebp, %ebp
leaq 0x7a5a9(%rip), %rsi     # 0xf12e6
movl $0x4, %edx
movq %r14, %rdi
callq 0x76800
movq %r14, %rdi
callq 0x3bb5d
leaq 0x7a522(%rip), %rdx     # 0xf127b
leaq 0x7(%rsp), %rdi
movl $0x21, %ecx
movq %rax, %rsi
xorl %r8d, %r8d
callq 0x76893
testb %bpl, %bpl
je 0x76da8
testl %eax, %eax
je 0x76da8
leaq 0x6c3db(%rip), %rsi     # 0xe3159
leaq 0x7a4cf(%rip), %rdx     # 0xf1254
leaq 0x7a4b6(%rip), %rcx     # 0xf1242
leaq 0x7a482(%rip), %r8      # 0xf1215
xorl %r15d, %r15d
movq %rbx, %rdi
movl $0xa2, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0x76de4
testb %bpl, %bpl
je 0x76de1
movb $0x1, %r15b
cmpb $0x1, 0x7(%rsp)
jne 0x76de4
leaq 0x6c39b(%rip), %rsi     # 0xe3159
leaq 0x7a49d(%rip), %rdx     # 0xf1262
leaq 0x7a476(%rip), %rcx     # 0xf1242
leaq 0x7a442(%rip), %r8      # 0xf1215
xorl %r15d, %r15d
movq %rbx, %rdi
movl $0xa3, %r9d
jmp 0x76d9f
xorl %r15d, %r15d
leaq 0x7a4fb(%rip), %rsi     # 0xf12e6
movl $0x4, %edx
movq %r14, %rdi
callq 0x76800
movq %r14, %rdi
callq 0x3bb5d
leaq 0x7a4e4(%rip), %rdx     # 0xf12eb
leaq 0x7(%rsp), %rdi
movl $0x22, %ecx
movq %rax, %rsi
xorl %r8d, %r8d
callq 0x76893
testb %r15b, %r15b
je 0x76e58
testl %eax, %eax
je 0x76e58
leaq 0x6c32d(%rip), %rsi     # 0xe3159
leaq 0x7a421(%rip), %rdx     # 0xf1254
leaq 0x7a408(%rip), %rcx     # 0xf1242
leaq 0x7a3d4(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0xa8, %r9d
xorl %eax, %eax
callq 0x34f1f
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x76e6b
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testb %r15b, %r15b
je 0x76e6b
xorl %ebp, %ebp
cmpb $0x0, 0x7(%rsp)
je 0x76e80
movq %r14, %rdi
callq 0x3c87b
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x6c2d2(%rip), %rsi     # 0xe3159
leaq 0x7ff80(%rip), %rdx     # 0xf6e0e
leaq 0x7a3ad(%rip), %rcx     # 0xf1242
leaq 0x7a379(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0xa9, %r9d
jmp 0x76e4a
cmpb $0x0, 0x7(%rsp)
je 0x76efc
leaq 0x7a227(%rip), %rsi     # 0xf10dc
leaq 0x7a3a2(%rip), %rdx     # 0xf125e
leaq 0x7(%rsp), %rdi
movl $0x2, %ecx
xorl %r8d, %r8d
callq 0x76893
testl %eax, %eax
je 0x76f2d
leaq 0x6c280(%rip), %rsi     # 0xe3159
leaq 0x7a374(%rip), %rdx     # 0xf1254
leaq 0x7a35b(%rip), %rcx     # 0xf1242
leaq 0x7a327(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x75, %r9d
jmp 0x76fa4
leaq 0x6c256(%rip), %rsi     # 0xe3159
leaq 0x7ff04(%rip), %rdx     # 0xf6e0e
leaq 0x7a331(%rip), %rcx     # 0xf1242
leaq 0x7a2fd(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x73, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0x76b5f
cmpb $0x0, 0x7(%rsp)
je 0x76f7f
leaq 0x7a1a1(%rip), %rsi     # 0xf10dc
leaq 0x79232(%rip), %rdx     # 0xf0174
leaq 0x7(%rsp), %rdi
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x76893
testl %eax, %eax
je 0x76fb0
leaq 0x6c1fa(%rip), %rsi     # 0xe3159
leaq 0x7a2ee(%rip), %rdx     # 0xf1254
leaq 0x7a2d5(%rip), %rcx     # 0xf1242
leaq 0x7a2a1(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x79, %r9d
jmp 0x76fdc
leaq 0x6c1d3(%rip), %rsi     # 0xe3159
leaq 0x7fe81(%rip), %rdx     # 0xf6e0e
leaq 0x7a2ae(%rip), %rcx     # 0xf1242
leaq 0x7a27a(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x76, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0x76b7f
cmpb $0x1, 0x7(%rsp)
jne 0x76fe8
leaq 0x6c19b(%rip), %rsi     # 0xe3159
leaq 0x7a29d(%rip), %rdx     # 0xf1262
leaq 0x7a276(%rip), %rcx     # 0xf1242
leaq 0x7a242(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x7a, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0x76b9f
leaq 0x7a0ed(%rip), %rsi     # 0xf10dc
leaq 0x90f85(%rip), %rdx     # 0x107f7b
leaq 0x7(%rsp), %rdi
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x76893
testl %eax, %eax
je 0x77033
leaq 0x6c146(%rip), %rsi     # 0xe3159
leaq 0x7a23a(%rip), %rdx     # 0xf1254
leaq 0x7a221(%rip), %rcx     # 0xf1242
leaq 0x7a1ed(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x7c, %r9d
jmp 0x7705f
cmpb $0x1, 0x7(%rsp)
jne 0x7706b
leaq 0x6c118(%rip), %rsi     # 0xe3159
leaq 0x7a21a(%rip), %rdx     # 0xf1262
leaq 0x7a1f3(%rip), %rcx     # 0xf1242
leaq 0x7a1bf(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x7d, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0x76bbf
leaq 0x7a06a(%rip), %rdx     # 0xf10dc
leaq 0x7(%rsp), %rdi
movq %rdx, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x76893
testl %eax, %eax
je 0x770af
leaq 0x6c0ca(%rip), %rsi     # 0xe3159
leaq 0x7a1be(%rip), %rdx     # 0xf1254
leaq 0x7a1a5(%rip), %rcx     # 0xf1242
leaq 0x7a171(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x7f, %r9d
jmp 0x770db
cmpb $0x1, 0x7(%rsp)
jne 0x770e7
leaq 0x6c09c(%rip), %rsi     # 0xe3159
leaq 0x7a19e(%rip), %rdx     # 0xf1262
leaq 0x7a177(%rip), %rcx     # 0xf1242
leaq 0x7a143(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x80, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0x76bd8
leaq 0x7a17b(%rip), %rsi     # 0xf1269
leaq 0x7a17e(%rip), %rdx     # 0xf1273
leaq 0x7(%rsp), %rdi
movl $0x7, %ecx
xorl %r8d, %r8d
callq 0x76893
testl %eax, %eax
je 0x77132
leaq 0x6c047(%rip), %rsi     # 0xe3159
leaq 0x7a13b(%rip), %rdx     # 0xf1254
leaq 0x7a122(%rip), %rcx     # 0xf1242
leaq 0x7a0ee(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x83, %r9d
jmp 0x771a9
cmpb $0x0, 0x7(%rsp)
je 0x77184
leaq 0x7a129(%rip), %rsi     # 0xf1269
leaq 0x7a128(%rip), %rdx     # 0xf126f
leaq 0x7(%rsp), %rdi
movl $0xb, %ecx
xorl %r8d, %r8d
callq 0x76893
testl %eax, %eax
je 0x771b5
leaq 0x6bff5(%rip), %rsi     # 0xe3159
leaq 0x7a0e9(%rip), %rdx     # 0xf1254
leaq 0x7a0d0(%rip), %rcx     # 0xf1242
leaq 0x7a09c(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x86, %r9d
jmp 0x771e1
leaq 0x6bfce(%rip), %rsi     # 0xe3159
leaq 0x7fc7c(%rip), %rdx     # 0xf6e0e
leaq 0x7a0a9(%rip), %rcx     # 0xf1242
leaq 0x7a075(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x84, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0x76bf8
cmpb $0x1, 0x7(%rsp)
jne 0x771ed
leaq 0x6bf96(%rip), %rsi     # 0xe3159
leaq 0x7a098(%rip), %rdx     # 0xf1262
leaq 0x7a071(%rip), %rcx     # 0xf1242
leaq 0x7a03d(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x87, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0x76c18
leaq 0x7a0cc(%rip), %rsi     # 0xf12c0
leaq 0x7a080(%rip), %rdx     # 0xf127b
leaq 0x7(%rsp), %rdi
movl $0x21, %ecx
xorl %r8d, %r8d
callq 0x76893
testl %eax, %eax
je 0x7723d
leaq 0x6bf41(%rip), %rsi     # 0xe3159
leaq 0x7a035(%rip), %rdx     # 0xf1254
leaq 0x7a01c(%rip), %rcx     # 0xf1242
leaq 0x79fe8(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x8a, %r9d
jmp 0x772b4
callq 0x1c361
cmpb $0x0, 0x7(%rsp)
je 0x7728f
leaq 0x7a075(%rip), %rsi     # 0xf12c0
leaq 0x7a04b(%rip), %rdx     # 0xf129d
leaq 0x7(%rsp), %rdi
movl $0x21, %ecx
xorl %r8d, %r8d
callq 0x76893
testl %eax, %eax
je 0x772c0
leaq 0x6beea(%rip), %rsi     # 0xe3159
leaq 0x79fde(%rip), %rdx     # 0xf1254
leaq 0x79fc5(%rip), %rcx     # 0xf1242
leaq 0x79f91(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x8e, %r9d
jmp 0x772ec
leaq 0x6bec3(%rip), %rsi     # 0xe3159
leaq 0x7fb71(%rip), %rdx     # 0xf6e0e
leaq 0x79f9e(%rip), %rcx     # 0xf1242
leaq 0x79f6a(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x8b, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0x76c38
cmpb $0x1, 0x7(%rsp)
jne 0x772f8
leaq 0x6be8b(%rip), %rsi     # 0xe3159
leaq 0x79f8d(%rip), %rdx     # 0xf1262
leaq 0x79f66(%rip), %rcx     # 0xf1242
leaq 0x79f32(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x8f, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0x76c58
leaq 0x79fc0(%rip), %rsi     # 0xf12bf
leaq 0x79fbe(%rip), %rdx     # 0xf12c4
leaq 0x7(%rsp), %rdi
movl $0x21, %ecx
xorl %r8d, %r8d
callq 0x76893
testl %eax, %eax
je 0x77343
leaq 0x6be36(%rip), %rsi     # 0xe3159
leaq 0x79f2a(%rip), %rdx     # 0xf1254
leaq 0x79f11(%rip), %rcx     # 0xf1242
leaq 0x79edd(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x92, %r9d
jmp 0x773bd
cmpb $0x0, 0x7(%rsp)
je 0x77398
leaq 0x79f6e(%rip), %rsi     # 0xf12bf
leaq 0x79f23(%rip), %rdx     # 0xf127b
leaq 0x7(%rsp), %rdi
movl $0x21, %ecx
xorl %r8d, %r8d
callq 0x76893
testl %eax, %eax
je 0x773c9
leaq 0x6bde4(%rip), %rsi     # 0xe3159
leaq 0x79ed8(%rip), %rdx     # 0xf1254
leaq 0x79ebf(%rip), %rcx     # 0xf1242
leaq 0x79e8b(%rip), %r8      # 0xf1215
xorl %r15d, %r15d
movq %rbx, %rdi
movl $0x96, %r9d
jmp 0x773ff
leaq 0x6bdba(%rip), %rsi     # 0xe3159
leaq 0x7fa68(%rip), %rdx     # 0xf6e0e
leaq 0x79e95(%rip), %rcx     # 0xf1242
leaq 0x79e61(%rip), %r8      # 0xf1215
movq %rbx, %rdi
movl $0x93, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0x76c78
movb $0x1, %r15b
cmpb $0x1, 0x7(%rsp)
jne 0x76c9b
leaq 0x6bd7b(%rip), %rsi     # 0xe3159
leaq 0x79e7d(%rip), %rdx     # 0xf1262
leaq 0x79e56(%rip), %rcx     # 0xf1242
leaq 0x79e22(%rip), %r8      # 0xf1215
xorl %r15d, %r15d
movq %rbx, %rdi
movl $0x97, %r9d
xorl %eax, %eax
callq 0x34f1f
jmp 0x76c9b
nop