user: 请从给定的汇编指令推导出C源代码:

```asm
<main>:
  endbr64
  sub    $0x8,%rsp
  xor    %eax,%eax
  call   <_ensure_pool_new_returns_initialised_pool@plt>
  xor    %eax,%eax
  call   <_ensure_pool_new_returns_null_when_no_more_memory@plt>
  xor    %eax,%eax
  call   <_ensure_pool_delete_releases_all_allocated_memory@plt>
  xor    %eax,%eax
  call   <_ensure_pool_delete_gracefully_handles_null_pool@plt>
  xor    %eax,%eax
  call   <_ensure_pool_delete_gracefully_handles_cleaned_up_pool@plt>
  xor    %eax,%eax
  call   <_ensure_pool_init_gracefully_handles_null_pool@plt>
  xor    %eax,%eax
  call   <_ensure_pool_init_with_zero_element_size_constructs_valid_empty_pool@plt>
  xor    %eax,%eax
  call   <_ensure_pool_init_with_zero_element_count_constructs_valid_empty_pool@plt>
  xor    %eax,%eax
  call   <_ensure_pool_init_gracefully_copes_when_out_of_memory@plt>
  xor    %eax,%eax
  call   <_ensure_pool_cleanup_releases_underlying_buffer@plt>
  xor    %eax,%eax
  call   <_ensure_pool_cleanup_gracefully_handles_null_pool@plt>
  xor    %eax,%eax
  call   <_ensure_pool_cleanup_gracefully_handles_cleaned_up_pool@plt>
  xor    %eax,%eax
  call   <_ensure_pool_take_returns_object_when_not_empty@plt>
  xor    %eax,%eax
  call   <_ensure_pool_take_returns_null_when_empty@plt>
  xor    %eax,%eax
  call   <_ensure_pool_take_gracefully_handles_null_pool@plt>
  xor    %eax,%eax
  call   <_ensure_pool_take_gracefully_handles_cleaned_up_pool@plt>
  xor    %eax,%eax
  call   <_ensure_pool_take_reuses_returned_elements@plt>
  xor    %eax,%eax
  call   <_ensure_pool_return_gracefully_handles_address_already_returned@plt>
  xor    %eax,%eax
  call   <_ensure_pool_return_gracefully_handles_cleaned_up_pool@plt>
  xor    %eax,%eax
  call   <_ensure_pool_return_gracefully_handles_address_not_in_pool@plt>
  xor    %eax,%eax
  call   <_ensure_pool_is_empty_gracefully_handles_null_pool@plt>
  xor    %eax,%eax
  call   <_ensure_pool_is_empty_gracefully_handles_cleaned_up_pool@plt>
  xor    %eax,%eax
  call   <_ensure_pool_is_empty_returns_non_zero_on_empty_legitimate_pool@plt>
  xor    %eax,%eax
  call   <_ensure_pool_is_empty_returns_zero_on_non_empty_legitimate_pool@plt>
  xor    %eax,%eax
  add    $0x8,%rsp
  ret
```

assistant: ```c
int main(int argc, char *argv[]) {
  (void)(argc);
  (void)(argv);
  _ensure_pool_new_returns_initialised_pool();
  _ensure_pool_new_returns_null_when_no_more_memory();
  _ensure_pool_delete_releases_all_allocated_memory();
  _ensure_pool_delete_gracefully_handles_null_pool();
  _ensure_pool_delete_gracefully_handles_cleaned_up_pool();
  _ensure_pool_init_gracefully_handles_null_pool();
  _ensure_pool_init_with_zero_element_size_constructs_valid_empty_pool();
  _ensure_pool_init_with_zero_element_count_constructs_valid_empty_pool();
  _ensure_pool_init_gracefully_copes_when_out_of_memory();
  _ensure_pool_cleanup_releases_underlying_buffer();
  _ensure_pool_cleanup_gracefully_handles_null_pool();
  _ensure_pool_cleanup_gracefully_handles_cleaned_up_pool();
  _ensure_pool_take_returns_object_when_not_empty();
  _ensure_pool_take_returns_null_when_empty();
  _ensure_pool_take_gracefully_handles_null_pool();
  _ensure_pool_take_gracefully_handles_cleaned_up_pool();
  _ensure_pool_take_reuses_returned_elements();
  _ensure_pool_return_gracefully_handles_address_already_returned();
  _ensure_pool_return_gracefully_handles_cleaned_up_pool();
  _ensure_pool_return_gracefully_handles_address_not_in_pool();
  _ensure_pool_is_empty_gracefully_handles_null_pool();
  _ensure_pool_is_empty_gracefully_handles_cleaned_up_pool();
  _ensure_pool_is_empty_returns_non_zero_on_empty_legitimate_pool();
  _ensure_pool_is_empty_returns_zero_on_non_empty_legitimate_pool();
  return 0;
}
```