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

```asm
<_test_MIN_biggerlong_smallerullong>:
  endbr64
  push   %r13
  cmp    %rdi,%rsi
  mov    %rdi,%r13
  push   %r12
  mov    %rsi,%r12
  push   %rbx
  mov    %rdi,%rbx
  cmovle %rsi,%rbx
  test   %rbx,%rbx
  js     L15
L40:
  cmp    %r13,%rbx
  jge    L59
L14:
  cmp    %r12,%rbx
  ja     L4
  jne    L5
  pop    %rbx
  xor    %eax,%eax
  pop    %r12
  pop    %r13
  ret
  cs nopw 0x0(%rax,%rax,1)
L4:
  sub    $0x8,%rsp
  mov    %r12,%rcx
  mov    $0x2aa,%esi
  mov    %rbx,%r9
  push   %r12
  mov    %rbx,%r8
  mov    %r13,%rdx
  lea    D10(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  pop    %rcx
  pop    %rsi
L5:
  sub    $0x8,%rsp
  mov    %r13,%rdx
  mov    %rbx,%r9
  mov    %rbx,%r8
  push   %r12
  mov    %r12,%rcx
  mov    $0x2ad,%esi
  xor    %eax,%eax
  lea    D29(%rip),%rdi
  call   <printf@plt>
  pop    %rax
  xor    %eax,%eax
  pop    %rdx
  pop    %rbx
  pop    %r12
  pop    %r13
  ret
  cs nopw 0x0(%rax,%rax,1)
L59:
  sub    $0x8,%rsp
  mov    %rbx,%r8
  lea    D2(%rip),%rdi
  xor    %eax,%eax
  push   %r13
  mov    %rbx,%r9
  mov    %r12,%rcx
  mov    %r13,%rdx
  mov    $0x2a7,%esi
  call   <printf@plt>
  pop    %rdi
  pop    %r8
  jmp    L14
  nopl   (%rax)
L15:
  push   $0xffffffffffffffff
  mov    %rbx,%r9
  mov    %rsi,%rcx
  mov    %rdi,%rdx
  push   $0xffffffffffffffff
  mov    %rbx,%r8
  mov    $0x2a4,%esi
  xor    %eax,%eax
  lea    D15(%rip),%rdi
  call   <printf@plt>
  pop    %r9
  pop    %r10
  jmp    L40
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D10
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D29
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D2
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D15
type_guessed: string

tool: D10: failed test %d MIN(%ld, %lluLLU): %lldLL == %lluULL > u == %lluLLU


tool: D29: failed test %d MIN(%ld, %lluLLU): %lldLL == %lluULL != u == %lluLLU


tool: D2: failed test %d MIN(%ld, %lluLLU): %lldLL == %lluULL >= i == %ld


tool: D15: failed test %d MIN(%ld, %lluLLU): %lldLL == %lluULL <= -1 == %d == %u


assistant: ```c
int _test_MIN_biggerlong_smallerullong(long i, unsigned long long u) {
  if ((((sizeof(i) > sizeof(long)) && (!((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i))))) ? (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))) : (((u) < 0) ? ((long long)(u)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))))) : (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? (((i) < 0) ? ((long long)(i)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u)))) : ((((long long)(i)) < ((long long)(u))) ? ((long long)(i)) : ((long long)(u))))) <= -1) {
    printf("failed test %d MIN(%ld, %lluLLU): %lldLL == %lluULL <= -1 == %d == %u\n", 676, i, u, (((sizeof(i) > sizeof(long)) && (!((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i))))) ? (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))) : (((u) < 0) ? ((long long)(u)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))))) : (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? (((i) < 0) ? ((long long)(i)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u)))) : ((((long long)(i)) < ((long long)(u))) ? ((long long)(i)) : ((long long)(u))))), (((sizeof(i) > sizeof(long)) && (!((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i))))) ? (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))) : (((u) < 0) ? ((long long)(u)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))))) : (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? (((i) < 0) ? ((long long)(i)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u)))) : ((((long long)(i)) < ((long long)(u))) ? ((long long)(i)) : ((long long)(u))))), -1, -1);
  }
  if ((((sizeof(i) > sizeof(long)) && (!((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i))))) ? (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))) : (((u) < 0) ? ((long long)(u)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))))) : (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? (((i) < 0) ? ((long long)(i)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u)))) : ((((long long)(i)) < ((long long)(u))) ? ((long long)(i)) : ((long long)(u))))) >= i) {
    printf("failed test %d MIN(%ld, %lluLLU): %lldLL == %lluULL >= i == %ld\n", 679, i, u, (((sizeof(i) > sizeof(long)) && (!((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i))))) ? (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))) : (((u) < 0) ? ((long long)(u)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))))) : (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? (((i) < 0) ? ((long long)(i)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u)))) : ((((long long)(i)) < ((long long)(u))) ? ((long long)(i)) : ((long long)(u))))), (((sizeof(i) > sizeof(long)) && (!((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i))))) ? (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))) : (((u) < 0) ? ((long long)(u)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))))) : (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? (((i) < 0) ? ((long long)(i)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u)))) : ((((long long)(i)) < ((long long)(u))) ? ((long long)(i)) : ((long long)(u))))), i);
  }
  if ((unsigned long long)(((sizeof(i) > sizeof(long)) && (!((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i))))) ? (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))) : (((u) < 0) ? ((long long)(u)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))))) : (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? (((i) < 0) ? ((long long)(i)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u)))) : ((((long long)(i)) < ((long long)(u))) ? ((long long)(i)) : ((long long)(u))))) > u) {
    printf("failed test %d MIN(%ld, %lluLLU): %lldLL == %lluULL > u == %lluLLU\n", 682, i, u, (((sizeof(i) > sizeof(long)) && (!((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i))))) ? (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))) : (((u) < 0) ? ((long long)(u)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))))) : (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? (((i) < 0) ? ((long long)(i)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u)))) : ((((long long)(i)) < ((long long)(u))) ? ((long long)(i)) : ((long long)(u))))), (((sizeof(i) > sizeof(long)) && (!((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i))))) ? (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))) : (((u) < 0) ? ((long long)(u)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))))) : (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? (((i) < 0) ? ((long long)(i)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u)))) : ((((long long)(i)) < ((long long)(u))) ? ((long long)(i)) : ((long long)(u))))), u);
  }
  if ((unsigned long long)(((sizeof(i) > sizeof(long)) && (!((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i))))) ? (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))) : (((u) < 0) ? ((long long)(u)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))))) : (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? (((i) < 0) ? ((long long)(i)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u)))) : ((((long long)(i)) < ((long long)(u))) ? ((long long)(i)) : ((long long)(u))))) != u) {
    printf("failed test %d MIN(%ld, %lluLLU): %lldLL == %lluULL != u == %lluLLU\n", 685, i, u, (((sizeof(i) > sizeof(long)) && (!((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i))))) ? (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))) : (((u) < 0) ? ((long long)(u)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))))) : (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? (((i) < 0) ? ((long long)(i)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u)))) : ((((long long)(i)) < ((long long)(u))) ? ((long long)(i)) : ((long long)(u))))), (((sizeof(i) > sizeof(long)) && (!((((i) - (i)) - (((i) - (i)) + 1)) < ((i) - (i))))) ? (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))) : (((u) < 0) ? ((long long)(u)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u))))) : (((sizeof(u) > sizeof(long)) && (!((((u) - (u)) - (((u) - (u)) + 1)) < ((u) - (u))))) ? (((i) < 0) ? ((long long)(i)) : ((((unsigned long long)(i)) < ((unsigned long long)(u))) ? ((long long)(i)) : ((long long)(u)))) : ((((long long)(i)) < ((long long)(u))) ? ((long long)(i)) : ((long long)(u))))), u);
  }
  return 0;
}
```