user: Please show me the C implementation that matches the assembly code listed below:

```asm
<get_last_path_component_tests>:
  endbr64
  push   %r12
  lea    D63(%rip),%r12
  push   %rbp
  lea    D33(%rip),%rbp
  mov    %rbp,%rdi
  sub    $0x8,%rsp
  call   <seatest_test_fixture_start@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <seatest_should_run@plt>
  test   %rax,%rax
  jne    L33
L124:
  lea    D79(%rip),%r12
  mov    %rbp,%rdi
  mov    %r12,%rsi
  call   <seatest_should_run@plt>
  test   %rax,%rax
  jne    L88
L122:
  lea    D70(%rip),%r12
  mov    %rbp,%rdi
  mov    %r12,%rsi
  call   <seatest_should_run@plt>
  test   %rax,%rax
  jne    L142
L46:
  lea    D66(%rip),%r12
  mov    %rbp,%rdi
  mov    %r12,%rsi
  call   <seatest_should_run@plt>
  test   %rax,%rax
  jne    L94
L138:
  lea    D71(%rip),%r12
  mov    %rbp,%rdi
  mov    %r12,%rsi
  call   <seatest_should_run@plt>
  test   %rax,%rax
  jne    L53
L24:
  lea    D61(%rip),%r12
  mov    %rbp,%rdi
  mov    %r12,%rsi
  call   <seatest_should_run@plt>
  test   %rax,%rax
  jne    L51
L109:
  lea    D67(%rip),%r12
  mov    %rbp,%rdi
  mov    %r12,%rsi
  call   <seatest_should_run@plt>
  test   %rax,%rax
  jne    L110
L8:
  lea    D68(%rip),%r12
  mov    %rbp,%rdi
  mov    %r12,%rsi
  call   <seatest_should_run@plt>
  test   %rax,%rax
  jne    L50
  add    $0x8,%rsp
  xor    %eax,%eax
  pop    %rbp
  pop    %r12
  jmp    11f0 <seatest_test_fixture_end@plt>
  nopl   0x0(%rax)
L33:
  xor    %eax,%eax
  call   <seatest_suite_setup@plt>
  xor    %eax,%eax
  call   <seatest_setup@plt>
  xor    %eax,%eax
  call   <test_empty_path_ok@plt>
  xor    %eax,%eax
  call   <seatest_teardown@plt>
  xor    %eax,%eax
  call   <seatest_suite_teardown@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <seatest_run_test@plt>
  jmp    L124
  nopl   0x0(%rax,%rax,1)
L50:
  xor    %eax,%eax
  call   <seatest_suite_setup@plt>
  xor    %eax,%eax
  call   <seatest_setup@plt>
  xor    %eax,%eax
  call   <test_root_ok@plt>
  xor    %eax,%eax
  call   <seatest_teardown@plt>
  xor    %eax,%eax
  call   <seatest_suite_teardown@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <seatest_run_test@plt>
  add    $0x8,%rsp
  xor    %eax,%eax
  pop    %rbp
  pop    %r12
  jmp    11f0 <seatest_test_fixture_end@plt>
  nopl   0x0(%rax)
L110:
  xor    %eax,%eax
  call   <seatest_suite_setup@plt>
  xor    %eax,%eax
  call   <seatest_setup@plt>
  xor    %eax,%eax
  call   <test_one_element_ok@plt>
  xor    %eax,%eax
  call   <seatest_teardown@plt>
  xor    %eax,%eax
  call   <seatest_suite_teardown@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <seatest_run_test@plt>
  jmp    L8
  nopl   0x0(%rax,%rax,1)
L51:
  xor    %eax,%eax
  call   <seatest_suite_setup@plt>
  xor    %eax,%eax
  call   <seatest_setup@plt>
  xor    %eax,%eax
  call   <test_path_has_separators_of_multiple_slashes_ok@plt>
  xor    %eax,%eax
  call   <seatest_teardown@plt>
  xor    %eax,%eax
  call   <seatest_suite_teardown@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <seatest_run_test@plt>
  jmp    L109
  nopl   0x0(%rax,%rax,1)
L53:
  xor    %eax,%eax
  call   <seatest_suite_setup@plt>
  xor    %eax,%eax
  call   <seatest_setup@plt>
  xor    %eax,%eax
  call   <test_path_ends_with_multiple_slashes_ok@plt>
  xor    %eax,%eax
  call   <seatest_teardown@plt>
  xor    %eax,%eax
  call   <seatest_suite_teardown@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <seatest_run_test@plt>
  jmp    L24
  nopl   0x0(%rax,%rax,1)
L94:
  xor    %eax,%eax
  call   <seatest_suite_setup@plt>
  xor    %eax,%eax
  call   <seatest_setup@plt>
  xor    %eax,%eax
  call   <test_path_ends_with_slash_ok@plt>
  xor    %eax,%eax
  call   <seatest_teardown@plt>
  xor    %eax,%eax
  call   <seatest_suite_teardown@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <seatest_run_test@plt>
  jmp    L138
  nopl   0x0(%rax,%rax,1)
L142:
  xor    %eax,%eax
  call   <seatest_suite_setup@plt>
  xor    %eax,%eax
  call   <seatest_setup@plt>
  xor    %eax,%eax
  call   <test_path_does_not_end_with_slash_ok@plt>
  xor    %eax,%eax
  call   <seatest_teardown@plt>
  xor    %eax,%eax
  call   <seatest_suite_teardown@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <seatest_run_test@plt>
  jmp    L46
  nopl   0x0(%rax,%rax,1)
L88:
  xor    %eax,%eax
  call   <seatest_suite_setup@plt>
  xor    %eax,%eax
  call   <seatest_setup@plt>
  xor    %eax,%eax
  call   <test_no_slashes_ok@plt>
  xor    %eax,%eax
  call   <seatest_teardown@plt>
  xor    %eax,%eax
  call   <seatest_suite_teardown@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <seatest_run_test@plt>
  jmp    L122
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D63
data_type: string
name: extract_symbolic_data
arguments: data_tag: D33
data_type: string
name: extract_symbolic_data
arguments: data_tag: D79
data_type: string
name: extract_symbolic_data
arguments: data_tag: D70
data_type: string
name: extract_symbolic_data
arguments: data_tag: D66
data_type: string
name: extract_symbolic_data
arguments: data_tag: D71
data_type: string
name: extract_symbolic_data
arguments: data_tag: D61
data_type: string
name: extract_symbolic_data
arguments: data_tag: D67
data_type: string
name: extract_symbolic_data
arguments: data_tag: D68
data_type: string

tool: D63: test_empty_path_ok

tool: D33: /scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c

tool: D79: test_no_slashes_ok

tool: D70: test_path_does_not_end_with_slash_ok

tool: D66: test_path_ends_with_slash_ok

tool: D71: test_path_ends_with_multiple_slashes_ok

tool: D61: test_path_has_separators_of_multiple_slashes_ok

tool: D67: test_one_element_ok

tool: D68: test_root_ok

assistant: ```c
void get_last_path_component_tests(void) {
  do {
    seatest_test_fixture_start("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c");
  } while (0);
  do {
    if (seatest_should_run("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_empty_path_ok")) {
      seatest_suite_setup();
      seatest_setup();
      test_empty_path_ok();
      seatest_teardown();
      seatest_suite_teardown();
      seatest_run_test("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_empty_path_ok");
    }
  } while (0);
  do {
    if (seatest_should_run("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_no_slashes_ok")) {
      seatest_suite_setup();
      seatest_setup();
      test_no_slashes_ok();
      seatest_teardown();
      seatest_suite_teardown();
      seatest_run_test("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_no_slashes_ok");
    }
  } while (0);
  do {
    if (seatest_should_run("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_path_does_not_end_with_slash_ok")) {
      seatest_suite_setup();
      seatest_setup();
      test_path_does_not_end_with_slash_ok();
      seatest_teardown();
      seatest_suite_teardown();
      seatest_run_test("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_path_does_not_end_with_slash_ok");
    }
  } while (0);
  do {
    if (seatest_should_run("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_path_ends_with_slash_ok")) {
      seatest_suite_setup();
      seatest_setup();
      test_path_ends_with_slash_ok();
      seatest_teardown();
      seatest_suite_teardown();
      seatest_run_test("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_path_ends_with_slash_ok");
    }
  } while (0);
  do {
    if (seatest_should_run("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_path_ends_with_multiple_slashes_ok")) {
      seatest_suite_setup();
      seatest_setup();
      test_path_ends_with_multiple_slashes_ok();
      seatest_teardown();
      seatest_suite_teardown();
      seatest_run_test("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_path_ends_with_multiple_slashes_ok");
    }
  } while (0);
  do {
    if (seatest_should_run("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_path_has_separators_of_multiple_slashes_ok")) {
      seatest_suite_setup();
      seatest_setup();
      test_path_has_separators_of_multiple_slashes_ok();
      seatest_teardown();
      seatest_suite_teardown();
      seatest_run_test("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_path_has_separators_of_multiple_slashes_ok");
    }
  } while (0);
  do {
    if (seatest_should_run("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_one_element_ok")) {
      seatest_suite_setup();
      seatest_setup();
      test_one_element_ok();
      seatest_teardown();
      seatest_suite_teardown();
      seatest_run_test("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_one_element_ok");
    }
  } while (0);
  do {
    if (seatest_should_run("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_root_ok")) {
      seatest_suite_setup();
      seatest_setup();
      test_root_ok();
      seatest_teardown();
      seatest_suite_teardown();
      seatest_run_test("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/sshilovsky/vifm/refs/heads/master/tests/misc/get_last_path_component.c", "test_root_ok");
    }
  } while (0);
  do {
    seatest_test_fixture_end();
  } while (0);
}
```