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

```asm
<test_uint64_encode>:
  endbr64
  sub    $0x8,%rsp
  xor    %edi,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0x2,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0x18,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0x2a,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0x35,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0x63,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0xfe,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0xff,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0x100,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0x101,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0x102,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0xfffe,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0xffff,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0x10000,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  xor    %eax,%eax
  mov    $0x10001,%edi
  call   <_help_test_uint64_encode@plt>
  mov    $0x10002,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0xfffffe,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0xffffff,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0x1000000,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0x1000001,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0x1000002,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0xfffffffd,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0xfffffffe,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0xffffffff,%edi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  xor    %eax,%eax
  movabs $0x100000000,%rdi
  call   <_help_test_uint64_encode@plt>
  xor    %eax,%eax
  movabs $0x100000001,%rdi
  call   <_help_test_uint64_encode@plt>
  mov    $0xfffffffffffffffd,%rdi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0xfffffffffffffffe,%rdi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0xffffffffffffffff,%rdi
  xor    %eax,%eax
  call   <_help_test_uint64_encode@plt>
  mov    $0x1,%eax
  add    $0x8,%rsp
  ret
```

assistant: ```c
int test_uint64_encode() {
  _help_test_uint64_encode(0);
  _help_test_uint64_encode(1);
  _help_test_uint64_encode(2);
  _help_test_uint64_encode(24);
  _help_test_uint64_encode(42);
  _help_test_uint64_encode(53);
  _help_test_uint64_encode(99);
  _help_test_uint64_encode((1 << 8) - 2);
  _help_test_uint64_encode((1 << 8) - 1);
  _help_test_uint64_encode((1 << 8));
  _help_test_uint64_encode((1 << 8) + 1);
  _help_test_uint64_encode((1 << 8) + 2);
  _help_test_uint64_encode((1 << 16) - 2);
  _help_test_uint64_encode((1 << 16) - 1);
  _help_test_uint64_encode((1 << 16));
  _help_test_uint64_encode((1 << 16) + 1);
  _help_test_uint64_encode((1 << 16) + 2);
  _help_test_uint64_encode((1 << 24) - 2);
  _help_test_uint64_encode((1 << 24) - 1);
  _help_test_uint64_encode((1 << 24));
  _help_test_uint64_encode((1 << 24) + 1);
  _help_test_uint64_encode((1 << 24) + 2);
  _help_test_uint64_encode(((unsigned long)((1ULL << ((32) - 1)) | ((1ULL << ((32) - 1)) - 1))) - 2);
  _help_test_uint64_encode(((unsigned long)((1ULL << ((32) - 1)) | ((1ULL << ((32) - 1)) - 1))) - 1);
  _help_test_uint64_encode(((unsigned long)((1ULL << ((32) - 1)) | ((1ULL << ((32) - 1)) - 1))));
  _help_test_uint64_encode(((unsigned long)((1ULL << ((32) - 1)) | ((1ULL << ((32) - 1)) - 1))) + 1LLU);
  _help_test_uint64_encode(((unsigned long)((1ULL << ((32) - 1)) | ((1ULL << ((32) - 1)) - 1))) + 2LLU);
  _help_test_uint64_encode(((unsigned long long)((1ULL << ((64) - 1)) | ((1ULL << ((64) - 1)) - 1))) - 2);
  _help_test_uint64_encode(((unsigned long long)((1ULL << ((64) - 1)) | ((1ULL << ((64) - 1)) - 1))) - 1);
  _help_test_uint64_encode(((unsigned long long)((1ULL << ((64) - 1)) | ((1ULL << ((64) - 1)) - 1))));
  return 1;
}
```