user: What would the C source look like for the assembly code provided here:

```asm
<combinationF7>:
  endbr64
  push   %r15
  mov    %edi,%r15d
  push   %r14
  mov    %ecx,%r14d
  push   %r13
  mov    %edx,%r13d
  push   %r12
  mov    %r9d,%r12d
  push   %rbp
  mov    %r8d,%ebp
  push   %rbx
  mov    %esi,%ebx
  sub    $0x58,%rsp
  mov    0xa8(%rsp),%eax
  push   %rax
  mov    0xa8(%rsp),%eax
  push   %rax
  mov    0xa8(%rsp),%eax
  push   %rax
  mov    0xa8(%rsp),%eax
  push   %rax
  call   <combinationF5@plt>
  mov    %r12d,%r9d
  mov    %ebp,%r8d
  mov    %ebx,%esi
  mov    %eax,0x28(%rsp)
  mov    0xd8(%rsp),%edi
  add    $0x20,%rsp
  push   %rdi
  mov    0xb8(%rsp),%ecx
  push   %rcx
  mov    0xa8(%rsp),%edx
  mov    %r14d,%ecx
  push   %rdx
  mov    0xa8(%rsp),%edi
  mov    %r13d,%edx
  push   %rdi
  mov    %r15d,%edi
  call   <combinationF5@plt>
  mov    %r12d,%r9d
  mov    %ebp,%r8d
  mov    %r14d,%ecx
  mov    %eax,0x2c(%rsp)
  mov    0xd8(%rsp),%edx
  add    $0x20,%rsp
  mov    %ebx,%esi
  push   %rdx
  mov    0xb8(%rsp),%edi
  push   %rdi
  mov    0xb8(%rsp),%edx
  push   %rdx
  mov    0xb8(%rsp),%edi
  mov    %r13d,%edx
  push   %rdi
  mov    %r15d,%edi
  call   <combinationF5@plt>
  mov    %r14d,%ecx
  mov    %ebx,%esi
  mov    %r15d,%edi
  mov    %eax,0x30(%rsp)
  mov    0xd8(%rsp),%edx
  add    $0x20,%rsp
  push   %rdx
  mov    0xb8(%rsp),%edx
  push   %rdx
  mov    0xb8(%rsp),%edx
  push   %rdx
  mov    0xb8(%rsp),%edx
  push   %rdx
  mov    0xb8(%rsp),%r9d
  mov    %r13d,%edx
  mov    0xb0(%rsp),%r8d
  call   <combinationF5@plt>
  mov    %r12d,%ecx
  mov    %ebp,%edx
  mov    %ebx,%esi
  mov    %eax,0x34(%rsp)
  mov    0xd8(%rsp),%r10d
  add    $0x20,%rsp
  mov    %r15d,%edi
  push   %r10
  mov    0xb8(%rsp),%r11d
  push   %r11
  mov    0xb8(%rsp),%r10d
  push   %r10
  mov    0xb8(%rsp),%r11d
  push   %r11
  mov    0xb8(%rsp),%r9d
  mov    0xb0(%rsp),%r8d
  call   <combinationF5@plt>
  mov    %r12d,%ecx
  mov    %ebp,%edx
  mov    %r14d,%esi
  mov    %eax,0x38(%rsp)
  mov    0xd8(%rsp),%r10d
  add    $0x20,%rsp
  mov    %r13d,%edi
  push   %r10
  mov    0xb8(%rsp),%r11d
  push   %r11
  mov    0xb8(%rsp),%r10d
  push   %r10
  mov    0xb8(%rsp),%r11d
  push   %r11
  mov    0xb8(%rsp),%r9d
  mov    0xb0(%rsp),%r8d
  call   <combinationF5@plt>
  mov    %r12d,%r9d
  mov    %ebp,%r8d
  mov    %r14d,%ecx
  mov    %eax,0x3c(%rsp)
  add    $0x20,%rsp
  mov    %r13d,%edx
  mov    %ebx,%esi
  mov    0xc8(%rsp),%r10d
  mov    %r15d,%edi
  push   %r10
  mov    0xc8(%rsp),%r11d
  push   %r11
  mov    0xa8(%rsp),%r10d
  push   %r10
  mov    0xa8(%rsp),%r11d
  push   %r11
  call   <combinationF5@plt>
  mov    %r12d,%r9d
  mov    %ebp,%r8d
  mov    %r14d,%ecx
  mov    %eax,0x40(%rsp)
  add    $0x20,%rsp
  mov    %r13d,%edx
  mov    %ebx,%esi
  mov    0xc8(%rsp),%r10d
  mov    %r15d,%edi
  push   %r10
  mov    0xc8(%rsp),%r11d
  push   %r11
  mov    0xb8(%rsp),%r10d
  push   %r10
  mov    0xb8(%rsp),%r11d
  push   %r11
  call   <combinationF5@plt>
  mov    %r14d,%ecx
  mov    %r13d,%edx
  mov    %ebx,%esi
  mov    %eax,0x44(%rsp)
  mov    0xe8(%rsp),%r10d
  add    $0x20,%rsp
  mov    %r15d,%edi
  push   %r10
  mov    0xc8(%rsp),%r11d
  push   %r11
  mov    0xb8(%rsp),%r10d
  push   %r10
  mov    0xb8(%rsp),%r11d
  push   %r11
  mov    0xb8(%rsp),%r9d
  mov    0xb0(%rsp),%r8d
  call   <combinationF5@plt>
  mov    %r12d,%ecx
  mov    %ebp,%edx
  mov    %ebx,%esi
  mov    %eax,0x48(%rsp)
  mov    0xe8(%rsp),%r9d
  add    $0x20,%rsp
  mov    %r15d,%edi
  push   %r9
  mov    0xc8(%rsp),%r10d
  push   %r10
  mov    0xb8(%rsp),%r11d
  push   %r11
  mov    0xb8(%rsp),%r9d
  push   %r9
  mov    0xb8(%rsp),%r9d
  mov    0xb0(%rsp),%r8d
  call   <combinationF5@plt>
  mov    %r12d,%ecx
  mov    %ebp,%edx
  mov    %r14d,%esi
  mov    %eax,0x4c(%rsp)
  mov    0xe8(%rsp),%r8d
  add    $0x20,%rsp
  mov    %r13d,%edi
  push   %r8
  mov    0xc8(%rsp),%r10d
  push   %r10
  mov    0xb8(%rsp),%r11d
  push   %r11
  mov    0xb8(%rsp),%r9d
  push   %r9
  mov    0xb8(%rsp),%r9d
  mov    0xb0(%rsp),%r8d
  call   <combinationF5@plt>
  mov    %r14d,%ecx
  mov    %r13d,%edx
  mov    %ebx,%esi
  mov    %eax,0x50(%rsp)
  mov    0xe8(%rsp),%r8d
  add    $0x20,%rsp
  mov    %r15d,%edi
  push   %r8
  mov    0xc8(%rsp),%r10d
  mov    %ebp,%r8d
  push   %r10
  mov    0xc8(%rsp),%r11d
  push   %r11
  mov    0xc8(%rsp),%r9d
  push   %r9
  mov    %r12d,%r9d
  call   <combinationF5@plt>
  mov    %r14d,%ecx
  mov    %r13d,%edx
  mov    %ebx,%esi
  mov    %eax,0x54(%rsp)
  mov    0xe8(%rsp),%r8d
  add    $0x20,%rsp
  mov    %r15d,%edi
  push   %r8
  mov    0xc8(%rsp),%r10d
  push   %r10
  mov    0xc8(%rsp),%r11d
  push   %r11
  mov    0xc8(%rsp),%r9d
  push   %r9
  mov    0xb8(%rsp),%r9d
  mov    0xb0(%rsp),%r8d
  call   <combinationF5@plt>
  mov    %r12d,%ecx
  mov    %ebp,%edx
  mov    %ebx,%esi
  mov    %eax,0x58(%rsp)
  mov    0xe8(%rsp),%r8d
  add    $0x20,%rsp
  mov    %r15d,%edi
  push   %r8
  mov    0xc8(%rsp),%r10d
  push   %r10
  mov    0xc8(%rsp),%r11d
  push   %r11
  mov    0xc8(%rsp),%r9d
  push   %r9
  mov    0xb8(%rsp),%r9d
  mov    0xb0(%rsp),%r8d
  call   <combinationF5@plt>
  mov    %r12d,%ecx
  mov    %ebp,%edx
  mov    %r14d,%esi
  mov    %eax,0x5c(%rsp)
  mov    0xe8(%rsp),%r8d
  add    $0x20,%rsp
  mov    %r13d,%edi
  push   %r8
  mov    0xc8(%rsp),%r10d
  push   %r10
  mov    0xc8(%rsp),%r11d
  push   %r11
  mov    0xc8(%rsp),%r9d
  push   %r9
  mov    0xb8(%rsp),%r9d
  mov    0xb0(%rsp),%r8d
  call   <combinationF5@plt>
  mov    %r14d,%ecx
  mov    %r13d,%edx
  mov    %ebx,%esi
  mov    %eax,0x60(%rsp)
  mov    0xe8(%rsp),%r8d
  add    $0x20,%rsp
  mov    %r15d,%edi
  push   %r8
  mov    0xc8(%rsp),%r10d
  push   %r10
  mov    0xc8(%rsp),%r11d
  push   %r11
  mov    0xc8(%rsp),%r9d
  push   %r9
  mov    0xc8(%rsp),%r9d
  mov    0xc0(%rsp),%r8d
  call   <combinationF5@plt>
  mov    %r12d,%ecx
  mov    %ebp,%edx
  mov    %ebx,%esi
  mov    %eax,0x64(%rsp)
  mov    0xe8(%rsp),%r8d
  add    $0x20,%rsp
  mov    %r15d,%edi
  push   %r8
  mov    0xc8(%rsp),%r10d
  push   %r10
  mov    0xc8(%rsp),%r11d
  push   %r11
  mov    0xc8(%rsp),%r9d
  push   %r9
  mov    0xc8(%rsp),%r9d
  mov    0xc0(%rsp),%r8d
  call   <combinationF5@plt>
  mov    %r12d,%ecx
  mov    %ebp,%edx
  mov    %r14d,%esi
  mov    %eax,0x6c(%rsp)
  mov    0xe8(%rsp),%r8d
  add    $0x20,%rsp
  mov    %r13d,%edi
  push   %r8
  mov    0xc8(%rsp),%r10d
  push   %r10
  mov    0xc8(%rsp),%r11d
  push   %r11
  mov    0xc8(%rsp),%r9d
  push   %r9
  mov    0xc8(%rsp),%r9d
  mov    0xc0(%rsp),%r8d
  call   <combinationF5@plt>
  mov    %ebx,%esi
  mov    %r15d,%edi
  mov    %eax,0x68(%rsp)
  mov    0xe8(%rsp),%r8d
  add    $0x20,%rsp
  push   %r8
  mov    0xc8(%rsp),%r10d
  push   %r10
  mov    0xc8(%rsp),%r11d
  push   %r11
  mov    0xc8(%rsp),%r9d
  push   %r9
  mov    0xc8(%rsp),%r9d
  mov    0xc0(%rsp),%r8d
  mov    0xb8(%rsp),%ecx
  mov    0xb0(%rsp),%edx
  call   <combinationF5@plt>
  add    $0x20,%rsp
  mov    %r14d,%esi
  mov    %r13d,%edi
  mov    0xc8(%rsp),%ebx
  mov    %eax,%r15d
  push   %rbx
  mov    0xc8(%rsp),%ebx
  push   %rbx
  mov    0xc8(%rsp),%ebx
  push   %rbx
  mov    0xc8(%rsp),%ebx
  push   %rbx
  mov    0xc8(%rsp),%r9d
  mov    0xc0(%rsp),%r8d
  mov    0xb8(%rsp),%ecx
  mov    0xb0(%rsp),%edx
  call   <combinationF5@plt>
  add    $0x20,%rsp
  mov    %r12d,%esi
  mov    %ebp,%edi
  mov    0xc8(%rsp),%r14d
  mov    %eax,%ebx
  push   %r14
  mov    0xc8(%rsp),%r14d
  push   %r14
  mov    0xc8(%rsp),%r14d
  push   %r14
  mov    0xc8(%rsp),%r14d
  push   %r14
  mov    0xc0(%rsp),%r8d
  mov    0xb8(%rsp),%ecx
  mov    0xb0(%rsp),%edx
  mov    0xc8(%rsp),%r9d
  call   <combinationF5@plt>
  mov    0x28(%rsp),%esi
  mov    0x2c(%rsp),%ecx
  mov    %eax,%r8d
  mov    0x30(%rsp),%edi
  mov    0x6c(%rsp),%r11d
  cmp    %ecx,%esi
  mov    0x68(%rsp),%r10d
  cmovge %esi,%ecx
  xor    %edx,%edx
  mov    0x38(%rsp),%esi
  test   %ecx,%ecx
  mov    %ecx,%eax
  mov    0x40(%rsp),%ecx
  cmovs  %edx,%eax
  mov    0x34(%rsp),%edx
  cmp    %edi,%eax
  cmovl  %edi,%eax
  mov    0x3c(%rsp),%edi
  cmp    %edx,%eax
  cmovl  %edx,%eax
  mov    0x44(%rsp),%edx
  cmp    %esi,%eax
  cmovl  %esi,%eax
  mov    0x48(%rsp),%esi
  cmp    %edi,%eax
  cmovl  %edi,%eax
  mov    0x4c(%rsp),%edi
  cmp    %ecx,%eax
  cmovl  %ecx,%eax
  mov    0x50(%rsp),%ecx
  cmp    %edx,%eax
  cmovl  %edx,%eax
  mov    0x54(%rsp),%edx
  cmp    %esi,%eax
  cmovl  %esi,%eax
  mov    0x58(%rsp),%esi
  cmp    %edi,%eax
  cmovl  %edi,%eax
  mov    0x5c(%rsp),%edi
  cmp    %ecx,%eax
  cmovl  %ecx,%eax
  mov    0x60(%rsp),%ecx
  cmp    %edx,%eax
  cmovl  %edx,%eax
  mov    0x64(%rsp),%edx
  cmp    %esi,%eax
  cmovl  %esi,%eax
  cmp    %edi,%eax
  cmovl  %edi,%eax
  cmp    %ecx,%eax
  cmovl  %ecx,%eax
  cmp    %edx,%eax
  cmovl  %edx,%eax
  cmp    %r11d,%eax
  cmovl  %r11d,%eax
  cmp    %r10d,%eax
  cmovl  %r10d,%eax
  cmp    %r15d,%eax
  cmovl  %r15d,%eax
  cmp    %ebx,%eax
  cmovl  %ebx,%eax
  cmp    %r8d,%eax
  cmovl  %r8d,%eax
  add    $0x78,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

assistant: ```c
int combinationF7(int cr1, int cs1, int cr2, int cs2, int cr3, int cs3, int cr4, int cs4, int cr5, int cs5, int cr6, int cs6, int cr7, int cs7) {
  int Comb[21];
  Comb[0] = combinationF5(cr1, cs1, cr2, cs2, cr3, cs3, cr4, cs4, cr5, cs5);
  Comb[1] = combinationF5(cr1, cs1, cr2, cs2, cr3, cs3, cr4, cs4, cr6, cs6);
  Comb[2] = combinationF5(cr1, cs1, cr2, cs2, cr3, cs3, cr5, cs5, cr6, cs6);
  Comb[3] = combinationF5(cr1, cs1, cr2, cs2, cr4, cs4, cr5, cs5, cr6, cs6);
  Comb[4] = combinationF5(cr1, cs1, cr3, cs3, cr4, cs4, cr5, cs5, cr6, cs6);
  Comb[5] = combinationF5(cr2, cs2, cr3, cs3, cr4, cs4, cr5, cs5, cr6, cs6);
  Comb[6] = combinationF5(cr1, cs1, cr2, cs2, cr3, cs3, cr4, cs4, cr7, cs7);
  Comb[7] = combinationF5(cr1, cs1, cr2, cs2, cr3, cs3, cr5, cs5, cr7, cs7);
  Comb[8] = combinationF5(cr1, cs1, cr2, cs2, cr4, cs4, cr5, cs5, cr7, cs7);
  Comb[9] = combinationF5(cr1, cs1, cr3, cs3, cr4, cs4, cr5, cs5, cr7, cs7);
  Comb[10] = combinationF5(cr2, cs2, cr3, cs3, cr4, cs4, cr5, cs5, cr7, cs7);
  Comb[11] = combinationF5(cr1, cs1, cr2, cs2, cr3, cs3, cr6, cs6, cr7, cs7);
  Comb[12] = combinationF5(cr1, cs1, cr2, cs2, cr4, cs4, cr6, cs6, cr7, cs7);
  Comb[13] = combinationF5(cr1, cs1, cr3, cs3, cr4, cs4, cr6, cs6, cr7, cs7);
  Comb[14] = combinationF5(cr2, cs2, cr3, cs3, cr4, cs4, cr6, cs6, cr7, cs7);
  Comb[15] = combinationF5(cr1, cs1, cr2, cs2, cr5, cs5, cr6, cs6, cr7, cs7);
  Comb[16] = combinationF5(cr1, cs1, cr3, cs3, cr5, cs5, cr6, cs6, cr7, cs7);
  Comb[17] = combinationF5(cr2, cs2, cr3, cs3, cr5, cs5, cr6, cs6, cr7, cs7);
  Comb[18] = combinationF5(cr1, cs1, cr4, cs4, cr5, cs5, cr6, cs6, cr7, cs7);
  Comb[19] = combinationF5(cr2, cs2, cr4, cs4, cr5, cs5, cr6, cs6, cr7, cs7);
  Comb[20] = combinationF5(cr3, cs3, cr4, cs4, cr5, cs5, cr6, cs6, cr7, cs7);
  int max = 0;
  if (Comb[0] > max)
    max = Comb[0];
  if (Comb[1] > max)
    max = Comb[1];
  if (Comb[2] > max)
    max = Comb[2];
  if (Comb[3] > max)
    max = Comb[3];
  if (Comb[4] > max)
    max = Comb[4];
  if (Comb[5] > max)
    max = Comb[5];
  if (Comb[6] > max)
    max = Comb[6];
  if (Comb[7] > max)
    max = Comb[7];
  if (Comb[8] > max)
    max = Comb[8];
  if (Comb[9] > max)
    max = Comb[9];
  if (Comb[10] > max)
    max = Comb[10];
  if (Comb[11] > max)
    max = Comb[11];
  if (Comb[12] > max)
    max = Comb[12];
  if (Comb[13] > max)
    max = Comb[13];
  if (Comb[14] > max)
    max = Comb[14];
  if (Comb[15] > max)
    max = Comb[15];
  if (Comb[16] > max)
    max = Comb[16];
  if (Comb[17] > max)
    max = Comb[17];
  if (Comb[18] > max)
    max = Comb[18];
  if (Comb[19] > max)
    max = Comb[19];
  if (Comb[20] > max)
    max = Comb[20];
  return max;
}
```