user: 下面的汇编指令对应的C源代码是什么：

```asm
<Gen_comb_del>:
  endbr64
  push   %r15
  lea    -0x1(%rsi),%eax
  mov    %rdx,%r15
  push   %r14
  lea    0x4(,%rax,4),%r11
  mov    %rax,%r14
  push   %r13
  mov    %esi,%r13d
  push   %r12
  push   %rbp
  lea    D2(%rip),%rbp
  push   %rbx
  mov    $0x1,%ebx
  sub    $0x48,%rsp
  mov    D89(%rip),%r12d
  mov    %rdi,(%rsp)
  mov    %rax,0x30(%rsp)
L107:
  mov    -0x4(%r15,%rbx,4),%eax
  movslq %r12d,%rcx
  mov    %eax,0x0(%rbp,%rcx,4)
  cmp    %r12d,%r14d
  jle    L69
  mov    (%rsp),%rdi
  add    $0x1,%r12d
  mov    %r15,%rdx
  mov    %r13d,%esi
  mov    %r11,0x8(%rsp)
  mov    %r12d,D75(%rip)
  call   <Gen_comb_del>
  cmp    $0x2,%rbx
  mov    0x8(%rsp),%r11
  mov    D75(%rip),%r12d
  jne    L99
L41:
  sub    $0x1,%r12d
  mov    %r12d,D75(%rip)
  add    $0x48,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopw   0x0(%rax,%rax,1)
L69:
  mov    D75(%rip),%r10d
  test   %r13d,%r13d
  jle    L139
  mov    %rcx,0x10(%rsp)
  mov    (%rsp),%rcx
  movslq %r10d,%rax
  mov    %r11,%rdx
  mov    %rbp,%rsi
  mov    %r10d,0x8(%rsp)
  mov    (%rcx,%rax,8),%rdi
  call   <memcpy@plt>
  mov    0x8(%rsp),%r10d
  mov    0x10(%rsp),%rcx
L139:
  lea    0x1(%r10),%eax
  mov    %eax,D33(%rip)
  cmp    $0x2,%rbx
  je     L41
  mov    %r13d,%r10d
  mov    %r13d,%edx
  and    $0xfffffffc,%r10d
  shr    $0x2,%edx
  movslq %r10d,%r9
  sub    $0x1,%edx
  lea    0x0(,%r9,4),%rsi
  add    $0x1,%rdx
  mov    %rsi,0x8(%rsp)
  lea    0x1(%r10),%esi
  shl    $0x4,%rdx
  movslq %esi,%r8
  mov    %esi,0x10(%rsp)
  lea    0x0(,%r8,4),%rsi
  mov    %rsi,0x18(%rsp)
  lea    0x2(%r10),%esi
  movslq %esi,%rdi
  mov    %esi,0x38(%rsp)
  lea    0x0(,%rdi,4),%rsi
  mov    %rdi,0x28(%rsp)
  mov    %rsi,0x20(%rsp)
L140:
  mov    (%r15,%rbx,4),%esi
  mov    %esi,0x0(%rbp,%rcx,4)
  test   %r13d,%r13d
  jle    L149
  mov    (%rsp),%rdi
  movslq %eax,%rsi
  lea    D33(%rip),%r11
  mov    (%rdi,%rsi,8),%rsi
  mov    %rsi,%rdi
  sub    %r11,%rdi
  cmp    $0x8,%rdi
  mov    $0x0,%edi
  jbe    L67
  cmp    $0x2,%r14d
  jbe    L67
  nopl   0x0(%rax)
L132:
  movdqa 0x0(%rbp,%rdi,1),%xmm0
  movups %xmm0,(%rsi,%rdi,1)
  add    $0x10,%rdi
  cmp    %rdx,%rdi
  jne    L132
  cmp    %r10d,%r13d
  je     L149
  mov    0x0(%rbp,%r9,4),%edi
  mov    0x8(%rsp),%r11
  mov    %edi,(%rsi,%r11,1)
  cmp    0x10(%rsp),%r13d
  jle    L149
  mov    0x0(%rbp,%r8,4),%edi
  mov    0x18(%rsp),%r11
  mov    %edi,(%rsi,%r11,1)
  cmp    0x38(%rsp),%r13d
  jle    L149
  mov    0x28(%rsp),%rdi
  mov    0x20(%rsp),%r11
  mov    0x0(%rbp,%rdi,4),%edi
  mov    %edi,(%rsi,%r11,1)
L149:
  add    $0x1,%rbx
  add    $0x1,%eax
  cmp    $0x2,%ebx
  jne    L140
  mov    %eax,D61(%rip)
  jmp    L41
  nop
L67:
  mov    %eax,0x3c(%rsp)
  mov    0x30(%rsp),%rax
  nopl   0x0(%rax)
L38:
  mov    0x0(%rbp,%rdi,4),%r11d
  mov    %r11d,(%rsi,%rdi,4)
  mov    %rdi,%r11
  add    $0x1,%rdi
  cmp    %rax,%r11
  jne    L38
  mov    0x3c(%rsp),%eax
  jmp    L149
  nopl   0x0(%rax,%rax,1)
L99:
  mov    $0x2,%ebx
  jmp    L107
```

assistant: ```c
void Gen_comb_del(int *cdel[], const int n, const int d[]) {
  static int i = 0;
  static int p = 0;
  static int del[128];
  int cont = 0;
  int t;
  while (cont < 2) {
    del[i] = d[cont];
    if (i < n - 1) {
      i++;
      Gen_comb_del(cdel, n, d);
    } else {
      for (t = 0; t < n; t++)
        cdel[p][t] = del[t];
      p++;
    }
    cont++;
  }
  i--;
  return;
}
```