user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<main>:
  endbr64
  push   %r12
  push   %rbp
  push   %rbx
  mov    $0x8,%edi
  call   <tap_plan@plt>
  mov    $0x0,%esi
  lea    D57(%rip),%rbx
  mov    %rbx,%rdi
  call   <globdir_str_is_pattern@plt>
  mov    %eax,%edx
  mov    %rbx,%rcx
  mov    $0xb,%esi
  lea    D51(%rip),%rbx
  mov    %rbx,%rdi
  call   <_tap_ok@plt>
  mov    $0x0,%esi
  lea    D59(%rip),%rbp
  mov    %rbp,%rdi
  call   <globdir_str_is_pattern@plt>
  mov    %eax,%edx
  mov    %rbp,%rcx
  mov    $0xc,%esi
  mov    %rbx,%rdi
  call   <_tap_ok@plt>
  mov    $0x0,%esi
  lea    D8(%rip),%rbp
  mov    %rbp,%rdi
  call   <globdir_str_is_pattern@plt>
  mov    %eax,%edx
  mov    %rbp,%rcx
  mov    $0xd,%esi
  mov    %rbx,%rdi
  call   <_tap_ok@plt>
  mov    $0x1,%esi
  lea    D14(%rip),%rbp
  mov    %rbp,%rdi
  call   <globdir_str_is_pattern@plt>
  mov    %eax,%edx
  lea    D79(%rip),%rcx
  mov    $0xe,%esi
  mov    %rbx,%rdi
  call   <_tap_ok@plt>
  mov    $0x0,%esi
  lea    D27(%rip),%r12
  mov    %r12,%rdi
  call   <globdir_str_is_pattern@plt>
  test   %eax,%eax
  sete   %dl
  movzbl %dl,%edx
  mov    %r12,%rcx
  mov    $0x10,%esi
  mov    %rbx,%rdi
  call   <_tap_ok@plt>
  mov    $0x0,%esi
  mov    %rbp,%rdi
  call   <globdir_str_is_pattern@plt>
  test   %eax,%eax
  sete   %dl
  movzbl %dl,%edx
  mov    %rbp,%rcx
  mov    $0x11,%esi
  mov    %rbx,%rdi
  call   <_tap_ok@plt>
  mov    $0x0,%esi
  lea    D41(%rip),%rbp
  mov    %rbp,%rdi
  call   <globdir_str_is_pattern@plt>
  test   %eax,%eax
  sete   %dl
  movzbl %dl,%edx
  mov    %rbp,%rcx
  mov    $0x12,%esi
  mov    %rbx,%rdi
  call   <_tap_ok@plt>
  mov    $0x1,%esi
  mov    %rbp,%rdi
  call   <globdir_str_is_pattern@plt>
  test   %eax,%eax
  sete   %dl
  movzbl %dl,%edx
  lea    D49(%rip),%rcx
  mov    $0x13,%esi
  mov    %rbx,%rdi
  call   <_tap_ok@plt>
  mov    $0x0,%eax
  call   <tap_finish@plt>
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
```

tool_calls: name: unpack_data
arguments: tag: D57
type_guessed: string
name: unpack_data
arguments: tag: D51
type_guessed: string
name: unpack_data
arguments: tag: D59
type_guessed: string
name: unpack_data
arguments: tag: D8
type_guessed: string
name: unpack_data
arguments: tag: D14
type_guessed: string
name: unpack_data
arguments: tag: D79
type_guessed: string
name: unpack_data
arguments: tag: D27
type_guessed: string
name: unpack_data
arguments: tag: D41
type_guessed: string
name: unpack_data
arguments: tag: D49
type_guessed: string

tool: D57: foo*

tool: D51: /scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/andrewgregory/pacutils/refs/heads/master/ext/globdir.c/t/10-is_pattern.c

tool: D59: foo?

tool: D8: fo[o]

tool: D14: foo\*

tool: D79: foo\* (NOESCAPE)

tool: D27: foo

tool: D41: foo\

tool: D49: foo\ (NOESCAPE)

assistant: ```c
int main(void) {
  tap_plan(8);
  _tap_ok("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/andrewgregory/pacutils/refs/heads/master/ext/globdir.c/t/10-is_pattern.c", 11, globdir_str_is_pattern("foo*", 0), "foo*");
  _tap_ok("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/andrewgregory/pacutils/refs/heads/master/ext/globdir.c/t/10-is_pattern.c", 12, globdir_str_is_pattern("foo?", 0), "foo?");
  _tap_ok("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/andrewgregory/pacutils/refs/heads/master/ext/globdir.c/t/10-is_pattern.c", 13, globdir_str_is_pattern("fo[o]", 0), "fo[o]");
  _tap_ok("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/andrewgregory/pacutils/refs/heads/master/ext/globdir.c/t/10-is_pattern.c", 14, globdir_str_is_pattern("foo\\*", 1), "foo\\* (NOESCAPE)");
  _tap_ok("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/andrewgregory/pacutils/refs/heads/master/ext/globdir.c/t/10-is_pattern.c", 16, !globdir_str_is_pattern("foo", 0), "foo");
  _tap_ok("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/andrewgregory/pacutils/refs/heads/master/ext/globdir.c/t/10-is_pattern.c", 17, !globdir_str_is_pattern("foo\\*", 0), "foo\\*");
  _tap_ok("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/andrewgregory/pacutils/refs/heads/master/ext/globdir.c/t/10-is_pattern.c", 18, !globdir_str_is_pattern("foo\\", 0), "foo\\");
  _tap_ok("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/andrewgregory/pacutils/refs/heads/master/ext/globdir.c/t/10-is_pattern.c", 19, !globdir_str_is_pattern("foo\\", 1), "foo\\ (NOESCAPE)");
  return tap_finish();
}
```