user: Converte this assembly snippet into its equivalent C code:

```asm
<my_sort_int_tab>:
  endbr64
  push   %r15
  movslq %esi,%rax
  push   %r14
  push   %r13
  mov    %rax,%r13
  shl    $0x2,%rax
  push   %r12
  mov    %rdi,%r12
  lea    -0x8(%rdi,%rax,1),%rcx
  push   %rbp
  lea    -0x4(%r12,%rax,1),%rax
  push   %rbx
  sub    $0x78,%rsp
  mov    (%rcx),%edi
  mov    (%rax),%esi
  mov    %rcx,0x60(%rsp)
  mov    %rax,0x68(%rsp)
  cmp    %esi,%edi
  jg     L207
  add    $0x78,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopw   0x0(%rax,%rax,1)
L207:
  lea    -0x1(%r13),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x8(%r12,%rax,1),%rcx
  lea    -0x4(%r12,%rax,1),%rax
  mov    %rax,0x58(%rsp)
  lea    -0x2(%r13),%eax
  cltq
  mov    %rcx,0x50(%rsp)
  shl    $0x2,%rax
  lea    -0x8(%r12,%rax,1),%rcx
  lea    -0x4(%r12,%rax,1),%rax
  mov    %rax,0x40(%rsp)
  lea    -0x3(%r13),%eax
  cltq
  mov    %rcx,0x48(%rsp)
  shl    $0x2,%rax
  lea    -0x8(%r12,%rax,1),%rcx
  lea    -0x4(%r12,%rax,1),%rax
  mov    %rax,0x38(%rsp)
  lea    -0x4(%r13),%eax
  cltq
  mov    %rcx,0x30(%rsp)
  shl    $0x2,%rax
  lea    -0x8(%r12,%rax,1),%rcx
  lea    -0x4(%r12,%rax,1),%rax
  mov    %rax,0x20(%rsp)
  lea    -0x5(%r13),%eax
  cltq
  mov    %rcx,0x28(%rsp)
  shl    $0x2,%rax
  lea    -0x8(%r12,%rax,1),%rcx
  lea    -0x4(%r12,%rax,1),%rax
  mov    %rax,0x18(%rsp)
  lea    -0x6(%r13),%eax
  cltq
  mov    %rcx,0x10(%rsp)
  shl    $0x2,%rax
  lea    -0x8(%r12,%rax,1),%r14
  lea    -0x4(%r12,%rax,1),%rax
  mov    %rax,0x8(%rsp)
  lea    -0x7(%r13),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x8(%r12,%rax,1),%rbx
  lea    -0x4(%r12,%rax,1),%rbp
  lea    -0x8(%r13),%eax
  sub    $0x9,%r13d
  cltq
  lea    -0x8(%r12,%rax,4),%r15
L133:
  mov    0x68(%rsp),%rax
  mov    %edi,(%rax)
  mov    0x60(%rsp),%rax
  mov    %esi,%edi
  mov    %esi,(%rax)
  mov    0x50(%rsp),%rax
  mov    (%rax),%ecx
  mov    0x58(%rsp),%rax
  mov    (%rax),%edx
  cmp    %edx,%ecx
  jg     L92
L34:
  mov    0x68(%rsp),%rax
  mov    (%rax),%esi
  cmp    %edi,%esi
  jl     L133
  add    $0x78,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  xchg   %ax,%ax
L92:
  mov    0x58(%rsp),%rax
  mov    %ecx,(%rax)
  mov    0x50(%rsp),%rax
  mov    %edx,%ecx
  mov    %edx,(%rax)
  mov    0x48(%rsp),%rax
  mov    (%rax),%edi
  mov    0x40(%rsp),%rax
  mov    (%rax),%esi
  cmp    %esi,%edi
  jg     L100
L202:
  mov    0x58(%rsp),%rax
  mov    (%rax),%edx
  cmp    %ecx,%edx
  jl     L92
  mov    0x60(%rsp),%rax
  mov    (%rax),%edi
  jmp    L34
  cs nopw 0x0(%rax,%rax,1)
L100:
  mov    0x40(%rsp),%rax
  mov    %edi,(%rax)
  mov    0x48(%rsp),%rax
  mov    %esi,%edi
  mov    %esi,(%rax)
  mov    0x30(%rsp),%rax
  mov    (%rax),%edx
  mov    0x38(%rsp),%rax
  mov    (%rax),%ecx
  cmp    %edx,%ecx
  jl     L72
L167:
  mov    0x40(%rsp),%rax
  mov    (%rax),%esi
  cmp    %edi,%esi
  jl     L100
  mov    0x50(%rsp),%rax
  mov    (%rax),%ecx
  jmp    L202
  cs nopw 0x0(%rax,%rax,1)
L72:
  mov    0x38(%rsp),%rax
  mov    %edx,(%rax)
  mov    0x30(%rsp),%rax
  mov    %ecx,%edx
  mov    %ecx,(%rax)
  mov    0x28(%rsp),%rax
  mov    (%rax),%esi
  mov    0x20(%rsp),%rax
  mov    (%rax),%edi
  cmp    %esi,%edi
  jl     L249
L122:
  mov    0x38(%rsp),%rax
  mov    (%rax),%ecx
  cmp    %ecx,%edx
  jg     L72
  mov    0x48(%rsp),%rax
  mov    (%rax),%edi
  jmp    L167
  cs nopw 0x0(%rax,%rax,1)
L249:
  mov    0x20(%rsp),%rax
  mov    %esi,(%rax)
  mov    0x28(%rsp),%rax
  mov    %edi,%esi
  mov    %edi,(%rax)
  mov    0x10(%rsp),%rax
  mov    (%rax),%edx
  mov    0x18(%rsp),%rax
  mov    (%rax),%ecx
  cmp    %edx,%ecx
  jl     L150
L241:
  mov    0x20(%rsp),%rax
  mov    (%rax),%edi
  cmp    %edi,%esi
  jg     L249
  mov    0x30(%rsp),%rax
  mov    (%rax),%edx
  jmp    L122
  cs nopw 0x0(%rax,%rax,1)
L150:
  mov    0x18(%rsp),%rax
  mov    %edx,(%rax)
  mov    0x10(%rsp),%rax
  mov    %ecx,%edx
  mov    %ecx,(%rax)
  mov    0x8(%rsp),%rax
  mov    (%r14),%esi
  mov    (%rax),%edi
  cmp    %esi,%edi
  jl     L41
L138:
  mov    0x18(%rsp),%rax
  mov    (%rax),%ecx
  cmp    %ecx,%edx
  jg     L150
  mov    0x28(%rsp),%rax
  mov    (%rax),%esi
  jmp    L241
  nopw   0x0(%rax,%rax,1)
L41:
  mov    %r13d,%eax
  mov    %r12,%r13
  mov    %eax,%r12d
L203:
  mov    0x8(%rsp),%rax
  mov    %esi,(%rax)
  mov    %edi,%esi
  mov    %edi,(%r14)
  mov    (%rbx),%eax
  mov    0x0(%rbp),%edx
  cmp    %edx,%eax
  jg     L2
L220:
  mov    0x8(%rsp),%rax
  mov    (%rax),%edi
  cmp    %edi,%esi
  jg     L203
  mov    %r12d,%eax
  mov    %r13,%r12
  mov    %eax,%r13d
  mov    0x10(%rsp),%rax
  mov    (%rax),%edx
  jmp    L138
  nopl   0x0(%rax,%rax,1)
L2:
  mov    %eax,0x0(%rbp)
  mov    %edx,%eax
  mov    %edx,(%rbx)
  movq   (%r15),%xmm0
  pshufd $0xe5,%xmm0,%xmm2
  movd   %xmm0,%ecx
  movd   %xmm2,%esi
  cmp    %ecx,%esi
  jl     L145
L195:
  mov    0x0(%rbp),%edx
  cmp    %eax,%edx
  jl     L2
  mov    (%r14),%esi
  jmp    L220
  nopl   0x0(%rax)
L145:
  pshufd $0xe1,%xmm0,%xmm0
  mov    %r12d,%esi
  mov    %r13,%rdi
  movq   %xmm0,(%r15)
  call   <my_sort_int_tab>
  movq   (%r15),%xmm0
  pshufd $0xe5,%xmm0,%xmm1
  movd   %xmm0,%edx
  movd   %xmm1,%eax
  cmp    %eax,%edx
  jg     L145
  mov    (%rbx),%eax
  jmp    L195
```

assistant: ```c
void my_sort_int_tab(int *tab, int size) {
  int temp;
  int csize;
  csize = size;
  temp = 0;
  if (tab[size - 2] > tab[size - 1]) {
    temp = tab[size - 1];
    tab[size - 1] = tab[size - 2];
    tab[size - 2] = temp;
    my_sort_int_tab(tab, --size);
  }
  if (size < csize) {
    my_sort_int_tab(tab, ++size);
  }
}
```