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

```asm
<reverse_range_length_test>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <reverse_range_make@plt>
  mov    %eax,%edi
  call   <reverse_range_length@plt>
  test   %eax,%eax
  sete   %dil
  movzbl %dil,%edi
  call   <assert@plt>
  mov    $0x2a,%esi
  mov    $0x2a,%edi
  call   <reverse_range_make@plt>
  mov    %eax,%edi
  call   <reverse_range_length@plt>
  test   %eax,%eax
  sete   %dil
  movzbl %dil,%edi
  call   <assert@plt>
  mov    $0x0,%esi
  mov    $0x1,%edi
  call   <reverse_range_make@plt>
  mov    %eax,%edi
  call   <reverse_range_length@plt>
  cmp    $0x1,%eax
  sete   %dil
  movzbl %dil,%edi
  call   <assert@plt>
  mov    $0xfffffffe,%esi
  mov    $0xffffffff,%edi
  call   <reverse_range_make@plt>
  mov    %eax,%edi
  call   <reverse_range_length@plt>
  cmp    $0x1,%eax
  sete   %dil
  movzbl %dil,%edi
  call   <assert@plt>
  mov    $0xa,%esi
  mov    $0xc,%edi
  call   <reverse_range_make@plt>
  mov    %eax,%edi
  call   <reverse_range_length@plt>
  cmp    $0x2,%eax
  sete   %dil
  movzbl %dil,%edi
  call   <assert@plt>
  mov    $0xffffffff,%esi
  mov    $0x1,%edi
  call   <reverse_range_make@plt>
  mov    %eax,%edi
  call   <reverse_range_length@plt>
  cmp    $0x2,%eax
  sete   %dil
  movzbl %dil,%edi
  call   <assert@plt>
  mov    D1(%rip),%rbp
  mov    0x0(%rbp),%esi
  mov    $0xffffffff,%edi
  call   <reverse_range_make@plt>
  mov    %eax,%edi
  call   <reverse_range_length@plt>
  mov    D16(%rip),%rbx
  cmp    %eax,(%rbx)
  sete   %dil
  movzbl %dil,%edi
  call   <assert@plt>
  mov    0x0(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    $0x0,%edi
  call   <reverse_range_make@plt>
  mov    %eax,%edi
  call   <reverse_range_length@plt>
  cmp    %eax,(%rbx)
  sete   %dil
  movzbl %dil,%edi
  call   <assert@plt>
  mov    0x0(%rbp),%esi
  add    $0x2,%esi
  mov    $0x1,%edi
  call   <reverse_range_make@plt>
  mov    %eax,%edi
  call   <reverse_range_length@plt>
  cmp    %eax,(%rbx)
  sete   %dil
  movzbl %dil,%edi
  call   <assert@plt>
  mov    $0x0,%esi
  mov    (%rbx),%edi
  call   <reverse_range_make@plt>
  mov    %eax,%edi
  call   <reverse_range_length@plt>
  cmp    %eax,(%rbx)
  sete   %dil
  movzbl %dil,%edi
  call   <assert@plt>
  mov    (%rbx),%eax
  lea    -0x1(%rax),%edi
  mov    $0xffffffff,%esi
  call   <reverse_range_make@plt>
  mov    %eax,%edi
  call   <reverse_range_length@plt>
  cmp    %eax,(%rbx)
  sete   %dil
  movzbl %dil,%edi
  call   <assert@plt>
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
```

assistant: ```c
void reverse_range_length_test(void) {
  assert(0 == reverse_range_length(reverse_range_make(0, 0)));
  assert(0 == reverse_range_length(reverse_range_make(42, 42)));
  assert(1 == reverse_range_length(reverse_range_make(1, 0)));
  assert(1 == reverse_range_length(reverse_range_make(-1, -2)));
  assert(2 == reverse_range_length(reverse_range_make(12, 10)));
  assert(2 == reverse_range_length(reverse_range_make(1, -1)));
  assert(INT_MAX == reverse_range_length(reverse_range_make(-1, INT_MIN)));
  assert(INT_MAX == reverse_range_length(reverse_range_make(0, INT_MIN + 1)));
  assert(INT_MAX == reverse_range_length(reverse_range_make(1, INT_MIN + 2)));
  assert(INT_MAX == reverse_range_length(reverse_range_make(INT_MAX, 0)));
  assert(INT_MAX == reverse_range_length(reverse_range_make(INT_MAX - 1, -1)));
}
```