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

```asm
<max_pixels>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x8(%rbp)
  mov    %rsi,-0x10(%rbp)
  mov    %rdx,-0x18(%rbp)
  mov    %rcx,-0x20(%rbp)
  mov    %r8,-0x28(%rbp)
  mov    %r9d,-0x2c(%rbp)
  cmpl   $0x4,-0x2c(%rbp)
  je     L424
  cmpl   $0x4,-0x2c(%rbp)
  jg     L423
  cmpl   $0x3,-0x2c(%rbp)
  je     L421
  cmpl   $0x3,-0x2c(%rbp)
  jg     L423
  cmpl   $0x1,-0x2c(%rbp)
  je     L61
  cmpl   $0x2,-0x2c(%rbp)
  je     L328
  jmp    L423
L424:
  mov    -0x10(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm0
  mov    -0x18(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm1
  comiss %xmm1,%xmm0
  jbe    L175
  mov    -0x10(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm0
  jmp    L258
L175:
  mov    -0x18(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm0
L258:
  mov    -0x20(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm1
  mov    -0x28(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm2
  comiss %xmm2,%xmm1
  jbe    L17
  mov    -0x20(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm1
  jmp    L364
L17:
  mov    -0x28(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm1
L364:
  comiss %xmm1,%xmm0
  jbe    L80
  mov    -0x10(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm0
  mov    -0x18(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm1
  comiss %xmm1,%xmm0
  jbe    L150
  mov    -0x10(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm0
  jmp    L20
L150:
  mov    -0x18(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm0
  jmp    L20
L80:
  mov    -0x20(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm0
  mov    -0x28(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm1
  comiss %xmm1,%xmm0
  jbe    L342
  mov    -0x20(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm0
  jmp    L20
L342:
  mov    -0x28(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm0
L20:
  mov    -0x8(%rbp),%rax
  add    $0xc,%rax
  movss  %xmm0,(%rax)
L421:
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm1
  comiss %xmm1,%xmm0
  jbe    L97
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  jmp    L400
L97:
  mov    -0x18(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
L400:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm1
  mov    -0x28(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm2
  comiss %xmm2,%xmm1
  jbe    L407
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm1
  jmp    L145
L407:
  mov    -0x28(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm1
L145:
  comiss %xmm1,%xmm0
  jbe    L398
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm1
  comiss %xmm1,%xmm0
  jbe    L63
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  jmp    L337
L63:
  mov    -0x18(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  jmp    L337
L398:
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mov    -0x28(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm1
  comiss %xmm1,%xmm0
  jbe    L195
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  jmp    L337
L195:
  mov    -0x28(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
L337:
  mov    -0x8(%rbp),%rax
  add    $0x8,%rax
  movss  %xmm0,(%rax)
L328:
  mov    -0x10(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm1
  comiss %xmm1,%xmm0
  jbe    L99
  mov    -0x10(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  jmp    L1
L99:
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
L1:
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm1
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm2
  comiss %xmm2,%xmm1
  jbe    L384
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm1
  jmp    L289
L384:
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm1
L289:
  comiss %xmm1,%xmm0
  jbe    L416
  mov    -0x10(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm1
  comiss %xmm1,%xmm0
  jbe    L349
  mov    -0x10(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  jmp    L64
L349:
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  jmp    L64
L416:
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm1
  comiss %xmm1,%xmm0
  jbe    L28
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  jmp    L64
L28:
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
L64:
  mov    -0x8(%rbp),%rax
  add    $0x4,%rax
  movss  %xmm0,(%rax)
L61:
  mov    -0x10(%rbp),%rax
  movss  (%rax),%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm1
  comiss %xmm1,%xmm0
  jbe    L156
  mov    -0x10(%rbp),%rax
  movss  (%rax),%xmm0
  jmp    L25
L156:
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
L25:
  mov    -0x20(%rbp),%rax
  movss  (%rax),%xmm1
  mov    -0x28(%rbp),%rax
  movss  (%rax),%xmm2
  comiss %xmm2,%xmm1
  jbe    L166
  mov    -0x20(%rbp),%rax
  movss  (%rax),%xmm1
  jmp    L234
L166:
  mov    -0x28(%rbp),%rax
  movss  (%rax),%xmm1
L234:
  comiss %xmm1,%xmm0
  jbe    L409
  mov    -0x10(%rbp),%rax
  movss  (%rax),%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm1
  comiss %xmm1,%xmm0
  jbe    L243
  mov    -0x10(%rbp),%rax
  movss  (%rax),%xmm0
  jmp    L402
L243:
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  jmp    L402
L409:
  mov    -0x20(%rbp),%rax
  movss  (%rax),%xmm0
  mov    -0x28(%rbp),%rax
  movss  (%rax),%xmm1
  comiss %xmm1,%xmm0
  jbe    L422
  mov    -0x20(%rbp),%rax
  movss  (%rax),%xmm0
  jmp    L402
L422:
  mov    -0x28(%rbp),%rax
  movss  (%rax),%xmm0
L402:
  mov    -0x8(%rbp),%rax
  movss  %xmm0,(%rax)
L423:
  nop
  pop    %rbp
  ret
```

assistant: ```c
void max_pixels(float *p, const float *q0, const float *q1, const float *q2, const float *q3, int c) {
  switch (c) {
  case 4:
    p[3] = ((((((q0[3]) > (q1[3])) ? (q0[3]) : (q1[3]))) > ((((q2[3]) > (q3[3])) ? (q2[3]) : (q3[3])))) ? ((((q0[3]) > (q1[3])) ? (q0[3]) : (q1[3]))) : ((((q2[3]) > (q3[3])) ? (q2[3]) : (q3[3]))));
  case 3:
    p[2] = ((((((q0[2]) > (q1[2])) ? (q0[2]) : (q1[2]))) > ((((q2[2]) > (q3[2])) ? (q2[2]) : (q3[2])))) ? ((((q0[2]) > (q1[2])) ? (q0[2]) : (q1[2]))) : ((((q2[2]) > (q3[2])) ? (q2[2]) : (q3[2]))));
  case 2:
    p[1] = ((((((q0[1]) > (q1[1])) ? (q0[1]) : (q1[1]))) > ((((q2[1]) > (q3[1])) ? (q2[1]) : (q3[1])))) ? ((((q0[1]) > (q1[1])) ? (q0[1]) : (q1[1]))) : ((((q2[1]) > (q3[1])) ? (q2[1]) : (q3[1]))));
  case 1:
    p[0] = ((((((q0[0]) > (q1[1])) ? (q0[0]) : (q1[1]))) > ((((q2[0]) > (q3[0])) ? (q2[0]) : (q3[0])))) ? ((((q0[0]) > (q1[1])) ? (q0[0]) : (q1[1]))) : ((((q2[0]) > (q3[0])) ? (q2[0]) : (q3[0]))));
  }
}
```