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

```asm
<maxscore>:
  endbr64
  push   %r13
  mov    $0x1e,%ecx
  mov    %esi,%r8d
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  push   %rbx
  sub    $0x118,%rsp
  movss  (%r12),%xmm1
  mov    %fs:0x28,%rax
  mov    %rax,0x108(%rsp)
  xor    %eax,%eax
  lea    0x10(%rsp),%rbx
  mov    %rbx,%rdi
  rep stos %rax,%es:(%rdi)
  test   %esi,%esi
  jle    L323
  movss  D63(%rip),%xmm6
  movss  D52(%rip),%xmm5
  mov    %edx,%esi
  mov    %r12,%rdx
  movss  D15(%rip),%xmm4
  movss  D21(%rip),%xmm3
  movss  D30(%rip),%xmm2
  nopl   (%rax)
L1:
  test   %esi,%esi
  jle    L293
  movss  (%rdx),%xmm0
  comiss %xmm1,%xmm0
  ja     L40
  ucomiss %xmm0,%xmm1
  jp     L397
  jne    L397
  pxor   %xmm0,%xmm0
  movslq %ecx,%rdi
  add    $0x1,%ecx
  cvtsi2ss %eax,%xmm0
  movl   $0x0,0x14(%rsp,%rdi,8)
  movss  %xmm0,0x10(%rsp,%rdi,8)
L397:
  cmp    $0x1,%esi
  je     L293
  movss  0x4(%rdx),%xmm0
  comiss %xmm1,%xmm0
  ja     L45
  ucomiss %xmm1,%xmm0
  jp     L375
  jne    L375
  pxor   %xmm0,%xmm0
  movslq %ecx,%rdi
  add    $0x1,%ecx
  cvtsi2ss %eax,%xmm0
  movss  %xmm2,0x14(%rsp,%rdi,8)
  movss  %xmm0,0x10(%rsp,%rdi,8)
L375:
  cmp    $0x2,%esi
  je     L293
  movss  0x8(%rdx),%xmm0
  comiss %xmm1,%xmm0
  ja     L139
  ucomiss %xmm1,%xmm0
  jp     L368
  jne    L368
  pxor   %xmm0,%xmm0
  movslq %ecx,%rdi
  add    $0x1,%ecx
  cvtsi2ss %eax,%xmm0
  movss  %xmm3,0x14(%rsp,%rdi,8)
  movss  %xmm0,0x10(%rsp,%rdi,8)
L368:
  cmp    $0x3,%esi
  je     L293
  movss  0xc(%rdx),%xmm0
  comiss %xmm1,%xmm0
  ja     L442
  ucomiss %xmm1,%xmm0
  jp     L204
  jne    L204
  pxor   %xmm0,%xmm0
  movslq %ecx,%rdi
  add    $0x1,%ecx
  cvtsi2ss %eax,%xmm0
  movss  %xmm4,0x14(%rsp,%rdi,8)
  movss  %xmm0,0x10(%rsp,%rdi,8)
L204:
  cmp    $0x4,%esi
  je     L293
  movss  0x10(%rdx),%xmm0
  comiss %xmm1,%xmm0
  ja     L238
  ucomiss %xmm0,%xmm1
  jp     L445
  jne    L445
  pxor   %xmm0,%xmm0
  movslq %ecx,%rdi
  add    $0x1,%ecx
  cvtsi2ss %eax,%xmm0
  movss  %xmm5,0x14(%rsp,%rdi,8)
  movss  %xmm0,0x10(%rsp,%rdi,8)
L445:
  cmp    $0x5,%esi
  je     L293
  movss  0x14(%rdx),%xmm0
  comiss %xmm1,%xmm0
  ja     L63
  ucomiss %xmm0,%xmm1
  jp     L256
  jne    L256
  pxor   %xmm0,%xmm0
  movslq %ecx,%rdi
  add    $0x1,%ecx
  cvtsi2ss %eax,%xmm0
  movss  %xmm6,0x14(%rsp,%rdi,8)
  movss  %xmm0,0x10(%rsp,%rdi,8)
L256:
  cmp    $0x6,%esi
  je     L293
  mov    $0x6,%edi
  jmp    L100
  nopl   0x0(%rax)
L90:
  pxor   %xmm1,%xmm1
  mov    $0x1,%ecx
  cvtsi2ss %eax,%xmm1
  movss  %xmm1,0x10(%rsp)
  pxor   %xmm1,%xmm1
  cvtsi2ss %edi,%xmm1
  movss  %xmm1,0x14(%rsp)
  movaps %xmm0,%xmm1
L307:
  add    $0x1,%rdi
  cmp    %edi,%esi
  jle    L293
L100:
  movd   %edi,%xmm0
  movd   %eax,%xmm7
  punpckldq %xmm0,%xmm7
  movss  (%rdx,%rdi,4),%xmm0
  comiss %xmm1,%xmm0
  ja     L90
  ucomiss %xmm1,%xmm0
  jp     L307
  jne    L307
  movslq %ecx,%r9
  add    $0x1,%rdi
  cvtdq2ps %xmm7,%xmm7
  add    $0x1,%ecx
  movlps %xmm7,(%rbx,%r9,8)
  cmp    %edi,%esi
  jg     L100
  nopw   0x0(%rax,%rax,1)
L293:
  add    $0x1,%eax
  add    $0x14,%rdx
  cmp    %eax,%r8d
  jne    L1
L323:
  lea    D68(%rip),%rdi
  movss  %xmm1,0xc(%rsp)
  lea    0x100(%rsp),%r13
  call   <puts@plt>
  lea    D67(%rip),%rbp
  movss  0xc(%rsp),%xmm1
  jmp    L76
  nopl   0x0(%rax)
L96:
  add    $0x8,%rbx
  cmp    %rbx,%r13
  je     L415
L76:
  cvttss2si (%rbx),%esi
  cvttss2si 0x4(%rbx),%edx
  movslq %esi,%rax
  lea    (%rax,%rax,4),%rax
  movslq %edx,%rcx
  lea    (%r12,%rax,4),%rax
  ucomiss (%rax,%rcx,4),%xmm1
  jp     L96
  jne    L96
  pxor   %xmm0,%xmm0
  mov    %rbp,%rdi
  mov    $0x1,%eax
  add    $0x8,%rbx
  movss  %xmm1,0xc(%rsp)
  cvtss2sd %xmm1,%xmm0
  call   <printf@plt>
  movss  0xc(%rsp),%xmm1
  cmp    %rbx,%r13
  jne    L76
L415:
  mov    0x108(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L14
  add    $0x118,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
  nopw   0x0(%rax,%rax,1)
L40:
  pxor   %xmm1,%xmm1
  movl   $0x0,0x14(%rsp)
  mov    $0x1,%ecx
  cvtsi2ss %eax,%xmm1
  movss  %xmm1,0x10(%rsp)
  movaps %xmm0,%xmm1
  jmp    L397
  nopl   0x0(%rax,%rax,1)
L45:
  pxor   %xmm1,%xmm1
  movss  %xmm2,0x14(%rsp)
  mov    $0x1,%ecx
  cvtsi2ss %eax,%xmm1
  movss  %xmm1,0x10(%rsp)
  movaps %xmm0,%xmm1
  jmp    L375
  nopl   0x0(%rax)
L139:
  pxor   %xmm1,%xmm1
  movss  %xmm3,0x14(%rsp)
  mov    $0x1,%ecx
  cvtsi2ss %eax,%xmm1
  movss  %xmm1,0x10(%rsp)
  movaps %xmm0,%xmm1
  jmp    L368
  nopl   0x0(%rax)
L442:
  pxor   %xmm1,%xmm1
  movss  %xmm4,0x14(%rsp)
  mov    $0x1,%ecx
  cvtsi2ss %eax,%xmm1
  movss  %xmm1,0x10(%rsp)
  movaps %xmm0,%xmm1
  jmp    L204
  nopl   0x0(%rax)
L238:
  pxor   %xmm1,%xmm1
  movss  %xmm5,0x14(%rsp)
  mov    $0x1,%ecx
  cvtsi2ss %eax,%xmm1
  movss  %xmm1,0x10(%rsp)
  movaps %xmm0,%xmm1
  jmp    L445
  nopl   0x0(%rax)
L63:
  pxor   %xmm1,%xmm1
  movss  %xmm6,0x14(%rsp)
  mov    $0x1,%ecx
  cvtsi2ss %eax,%xmm1
  movss  %xmm1,0x10(%rsp)
  movaps %xmm0,%xmm1
  jmp    L256
L14:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: disassemble_data
arguments: tag: D63
type_infered: byte[4]
name: disassemble_data
arguments: tag: D52
type_infered: byte[4]
name: disassemble_data
arguments: tag: D15
type_infered: byte[4]
name: disassemble_data
arguments: tag: D21
type_infered: byte[4]
name: disassemble_data
arguments: tag: D30
type_infered: byte[4]
name: disassemble_data
arguments: tag: D68
type_infered: string
name: disassemble_data
arguments: tag: D67
type_infered: string

tool: {"D63": [0x00,0x00,0xa0,0x40]}

tool: {"D52": [0x00,0x00,0x80,0x40]}

tool: {"D15": [0x00,0x00,0x40,0x40]}

tool: {"D21": [0x00,0x00,0x00,0x40]}

tool: {"D30": [0x00,0x00,0x80,0x3f]}

tool: D68: 
All of the max score is:

tool: D67: i=%d j=%d max=%6.3f


assistant: ```c
void maxscore(float num[][5], int rows, int cols) {
  float stu[30][2] = {0};
  float max = num[0][0];
  int i, j, k = 0;
  int index1, index2;
  for (i = 0; i < rows; i++) {
    for (j = 0; j < cols; j++) {
      if (num[i][j] > max) {
        max = num[i][j];
        k = 0;
        stu[k][0] = i;
        stu[k][1] = j;
        k++;
      } else if (num[i][j] == max) {
        stu[k][0] = i;
        stu[k][1] = j;
        k++;
      }
    }
  }
  printf("\nAll of the max score is:\n");
  for (i = 0; i < 30; i++) {
    index1 = stu[i][0];
    index2 = stu[i][1];
    if (num[index1][index2] == max) {
      printf("i=%d j=%d max=%6.3f\n", index1, index2, max);
    }
  }
}
```