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

```asm
<standard_condition_report>:
  endbr64
  push   %rbp
  movd   %edi,%xmm3
  mov    %esi,%eax
  unpcklpd %xmm1,%xmm0
  mov    %rdx,%rsi
  mov    %rsp,%rbp
  push   %r15
  mov    %r8,%r15
  push   %r14
  mov    %r9,%r14
  push   %r13
  push   %r12
  push   %rbx
  sub    $0x158,%rsp
  mov    0x18(%rbp),%rbx
  movd   0x40(%rbp),%xmm6
  mov    %rcx,-0x148(%rbp)
  mov    0x10(%rbp),%r11
  mov    0x28(%rbp),%r13
  mov    %rbx,-0x150(%rbp)
  mov    0x20(%rbp),%rbx
  punpckldq %xmm6,%xmm3
  mov    0x30(%rbp),%r12
  mov    %rbx,-0x158(%rbp)
  mov    0x38(%rbp),%rbx
  mov    %fs:0x28,%rdx
  mov    %rdx,-0x38(%rbp)
  xor    %edx,%edx
  mov    %eax,-0x138(%rbp)
  movq   %xmm3,-0x140(%rbp)
  movaps %xmm0,-0x120(%rbp)
  movsd  %xmm2,-0x110(%rbp)
  test   %eax,%eax
  je     L356
  cmp    $0x30,%eax
  jle    L352
  movslq %eax,%rdx
  mov    %rsp,%rdi
  mov    %rsp,%r10
  lea    0xf(,%rdx,4),%rdx
  mov    %rdx,%rcx
  and    $0xfffffffffffff000,%rdx
  sub    %rdx,%rdi
  and    $0xfffffffffffffff0,%rcx
  cmp    %rdi,%rsp
  je     L368
L212:
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  cmp    %rdi,%rsp
  jne    L212
L368:
  and    $0xfff,%ecx
  sub    %rcx,%rsp
  test   %rcx,%rcx
  je     L204
  orq    $0x0,-0x8(%rsp,%rcx,1)
L204:
  mov    %eax,%r8d
  lea    0x3(%rsp),%rdx
  pxor   %xmm5,%xmm5
  mov    %rsi,%rdi
  shr    $0x4,%r8d
  mov    %rdx,%r9
  pxor   %xmm3,%xmm3
  and    $0xfffffffffffffffc,%rdx
  sub    $0x1,%r8d
  shr    $0x2,%r9
  mov    %rdx,%rcx
  shl    $0x4,%r8
  lea    0x10(%rsi,%r8,1),%r8
L329:
  movdqu (%rdi),%xmm0
  movdqa %xmm5,%xmm2
  add    $0x10,%rdi
  add    $0x40,%rcx
  pcmpgtb %xmm0,%xmm2
  movdqa %xmm0,%xmm1
  punpcklbw %xmm2,%xmm1
  punpckhbw %xmm2,%xmm0
  movdqa %xmm3,%xmm2
  pcmpgtw %xmm1,%xmm2
  movdqa %xmm1,%xmm4
  punpckhwd %xmm2,%xmm1
  punpcklwd %xmm2,%xmm4
  movdqa %xmm0,%xmm2
  movups %xmm1,-0x30(%rcx)
  movdqa %xmm3,%xmm1
  pcmpgtw %xmm0,%xmm1
  movups %xmm4,-0x40(%rcx)
  punpcklwd %xmm1,%xmm2
  punpckhwd %xmm1,%xmm0
  movups %xmm2,-0x20(%rcx)
  movups %xmm0,-0x10(%rcx)
  cmp    %rdi,%r8
  jne    L329
  mov    %eax,%ecx
  and    $0xfffffff0,%ecx
  test   $0xf,%al
  je     L62
  mov    %ecx,%r8d
  lea    (%rdx,%r8,4),%rdi
  movsbl (%rsi,%r8,1),%r8d
  mov    %r8d,(%rdi)
  lea    0x1(%rcx),%r8d
  cmp    %r8d,%eax
  jle    L62
  movslq %r8d,%r8
  movsbl (%rsi,%r8,1),%r8d
  mov    %r8d,0x4(%rdi)
  lea    0x2(%rcx),%r8d
  cmp    %r8d,%eax
  jle    L62
  movslq %r8d,%r8
  movsbl (%rsi,%r8,1),%r8d
  mov    %r8d,0x8(%rdi)
  lea    0x3(%rcx),%r8d
  cmp    %r8d,%eax
  jle    L62
  movslq %r8d,%r8
  movsbl (%rsi,%r8,1),%r8d
  mov    %r8d,0xc(%rdi)
  lea    0x4(%rcx),%r8d
  cmp    %eax,%r8d
  jge    L62
  movslq %r8d,%r8
  movsbl (%rsi,%r8,1),%r8d
  mov    %r8d,0x10(%rdi)
  lea    0x5(%rcx),%r8d
  cmp    %eax,%r8d
  jge    L62
  movslq %r8d,%r8
  movsbl (%rsi,%r8,1),%r8d
  mov    %r8d,0x14(%rdi)
  lea    0x6(%rcx),%r8d
  cmp    %r8d,%eax
  jle    L62
  movslq %r8d,%r8
  movsbl (%rsi,%r8,1),%r8d
  mov    %r8d,0x18(%rdi)
  lea    0x7(%rcx),%r8d
  cmp    %eax,%r8d
  jge    L62
  movslq %r8d,%r8
  movsbl (%rsi,%r8,1),%r8d
  mov    %r8d,0x1c(%rdi)
  lea    0x8(%rcx),%r8d
  cmp    %eax,%r8d
  jge    L62
  movslq %r8d,%r8
  movsbl (%rsi,%r8,1),%r8d
  mov    %r8d,0x20(%rdi)
  lea    0x9(%rcx),%r8d
  cmp    %eax,%r8d
  jge    L62
  movslq %r8d,%r8
  movsbl (%rsi,%r8,1),%r8d
  mov    %r8d,0x24(%rdi)
  lea    0xa(%rcx),%r8d
  cmp    %r8d,%eax
  jle    L62
  movslq %r8d,%r8
  movsbl (%rsi,%r8,1),%r8d
  mov    %r8d,0x28(%rdi)
  lea    0xb(%rcx),%r8d
  cmp    %r8d,%eax
  jle    L62
  movslq %r8d,%r8
  movsbl (%rsi,%r8,1),%r8d
  mov    %r8d,0x2c(%rdi)
  lea    0xc(%rcx),%r8d
  cmp    %r8d,%eax
  jle    L62
  movslq %r8d,%r8
  movsbl (%rsi,%r8,1),%r8d
  mov    %r8d,0x30(%rdi)
  lea    0xd(%rcx),%r8d
  cmp    %r8d,%eax
  jle    L62
  movslq %r8d,%r8
  add    $0xe,%ecx
  movsbl (%rsi,%r8,1),%r8d
  mov    %r8d,0x34(%rdi)
  cmp    %ecx,%eax
  jle    L62
  movslq %ecx,%rcx
  movsbl (%rsi,%rcx,1),%eax
  mov    %eax,0x38(%rdi)
  nopl   0x0(%rax,%rax,1)
L62:
  lea    -0x120(%rbp),%rcx
  lea    -0x140(%rbp),%rsi
  xor    %r8d,%r8d
  mov    $0x398,%edi
  mov    %r9,-0x178(%rbp)
  mov    %r11,-0x170(%rbp)
  mov    %rdx,-0x160(%rbp)
  mov    %r10,-0x168(%rbp)
  call   <_ada_use_c2phc@plt>
  mov    -0x178(%rbp),%r9
  mov    -0x160(%rbp),%rdx
  movdqu 0x0(,%r9,4),%xmm7
  movups %xmm7,0x0(%r13)
  movdqu 0x10(,%r9,4),%xmm7
  movups %xmm7,0x10(%r13)
  movdqu 0x20(,%r9,4),%xmm7
  movups %xmm7,0x20(%r13)
  movdqu 0x30(,%r9,4),%xmm7
  movups %xmm7,0x30(%r13)
  movdqu 0x40(,%r9,4),%xmm6
  movups %xmm6,(%r12)
  movdqu 0x50(%rdx),%xmm7
  movups %xmm7,0x10(%r12)
  movdqu 0x60(%rdx),%xmm6
  movups %xmm6,0x20(%r12)
  movdqu 0x70(%rdx),%xmm7
  movups %xmm7,0x30(%r12)
  movdqu 0x80(,%r9,4),%xmm6
  movups %xmm6,(%rbx)
  movdqu 0x90(%rdx),%xmm5
  movups %xmm5,0x10(%rbx)
  movdqu 0xa0(%rdx),%xmm7
  movups %xmm7,0x20(%rbx)
  movdqu 0xb0(%rdx),%xmm6
  movups %xmm6,0x30(%rbx)
  mov    -0x168(%rbp),%rsp
  mov    -0x170(%rbp),%r11
  jmp    L400
  nopl   (%rax)
L352:
  test   %eax,%eax
  jle    L356
  lea    -0x1(%rax),%edx
  cmp    $0xe,%edx
  jbe    L374
  movdqu (%rsi),%xmm0
  pxor   %xmm3,%xmm3
  mov    %eax,%edx
  movdqa %xmm3,%xmm1
  shr    $0x4,%edx
  pcmpgtb %xmm0,%xmm1
  movdqa %xmm0,%xmm2
  punpcklbw %xmm1,%xmm2
  punpckhbw %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  movdqa %xmm1,%xmm4
  movdqa %xmm2,%xmm5
  pcmpgtw %xmm2,%xmm4
  punpckhwd %xmm4,%xmm2
  punpcklwd %xmm4,%xmm5
  movdqa %xmm0,%xmm4
  movaps %xmm2,-0xf0(%rbp)
  movdqa %xmm1,%xmm2
  pcmpgtw %xmm0,%xmm2
  movaps %xmm5,-0x100(%rbp)
  punpcklwd %xmm2,%xmm4
  punpckhwd %xmm2,%xmm0
  movaps %xmm4,-0xe0(%rbp)
  movaps %xmm0,-0xd0(%rbp)
  cmp    $0x1,%edx
  je     L126
  movdqu 0x10(%rsi),%xmm0
  movdqa %xmm3,%xmm4
  pcmpgtb %xmm0,%xmm4
  movdqa %xmm0,%xmm2
  punpcklbw %xmm4,%xmm2
  punpckhbw %xmm4,%xmm0
  movdqa %xmm1,%xmm4
  pcmpgtw %xmm2,%xmm4
  movdqa %xmm2,%xmm5
  punpckhwd %xmm4,%xmm2
  punpcklwd %xmm4,%xmm5
  movdqa %xmm0,%xmm4
  movaps %xmm2,-0xb0(%rbp)
  movdqa %xmm1,%xmm2
  pcmpgtw %xmm0,%xmm2
  movaps %xmm5,-0xc0(%rbp)
  punpcklwd %xmm2,%xmm4
  punpckhwd %xmm2,%xmm0
  movaps %xmm4,-0xa0(%rbp)
  movaps %xmm0,-0x90(%rbp)
  cmp    $0x3,%edx
  jne    L126
  movdqu 0x20(%rsi),%xmm0
  pcmpgtb %xmm0,%xmm3
  movdqa %xmm0,%xmm2
  punpcklbw %xmm3,%xmm2
  punpckhbw %xmm3,%xmm0
  movdqa %xmm1,%xmm3
  pcmpgtw %xmm2,%xmm3
  pcmpgtw %xmm0,%xmm1
  movdqa %xmm2,%xmm4
  punpckhwd %xmm3,%xmm2
  punpcklwd %xmm3,%xmm4
  movaps %xmm2,-0x70(%rbp)
  movdqa %xmm0,%xmm2
  punpckhwd %xmm1,%xmm0
  punpcklwd %xmm1,%xmm2
  movaps %xmm4,-0x80(%rbp)
  movaps %xmm2,-0x60(%rbp)
  movaps %xmm0,-0x50(%rbp)
L126:
  mov    %eax,%edx
  and    $0xfffffff0,%edx
  test   $0xf,%al
  je     L356
L259:
  movslq %edx,%rcx
  movsbl (%rsi,%rcx,1),%edi
  mov    %edi,-0x100(%rbp,%rcx,4)
  lea    0x1(%rdx),%ecx
  cmp    %ecx,%eax
  jle    L356
  movslq %ecx,%rcx
  movsbl (%rsi,%rcx,1),%edi
  mov    %edi,-0x100(%rbp,%rcx,4)
  lea    0x2(%rdx),%ecx
  cmp    %ecx,%eax
  jle    L356
  movslq %ecx,%rcx
  movsbl (%rsi,%rcx,1),%edi
  mov    %edi,-0x100(%rbp,%rcx,4)
  lea    0x3(%rdx),%ecx
  cmp    %ecx,%eax
  jle    L356
  movslq %ecx,%rcx
  movsbl (%rsi,%rcx,1),%edi
  mov    %edi,-0x100(%rbp,%rcx,4)
  lea    0x4(%rdx),%ecx
  cmp    %ecx,%eax
  jle    L356
  movslq %ecx,%rcx
  movsbl (%rsi,%rcx,1),%edi
  mov    %edi,-0x100(%rbp,%rcx,4)
  lea    0x5(%rdx),%ecx
  cmp    %ecx,%eax
  jle    L356
  movslq %ecx,%rcx
  movsbl (%rsi,%rcx,1),%edi
  mov    %edi,-0x100(%rbp,%rcx,4)
  lea    0x6(%rdx),%ecx
  cmp    %ecx,%eax
  jle    L356
  movslq %ecx,%rcx
  movsbl (%rsi,%rcx,1),%edi
  mov    %edi,-0x100(%rbp,%rcx,4)
  lea    0x7(%rdx),%ecx
  cmp    %ecx,%eax
  jle    L356
  movslq %ecx,%rcx
  movsbl (%rsi,%rcx,1),%edi
  mov    %edi,-0x100(%rbp,%rcx,4)
  lea    0x8(%rdx),%ecx
  cmp    %ecx,%eax
  jle    L356
  movslq %ecx,%rcx
  movsbl (%rsi,%rcx,1),%edi
  mov    %edi,-0x100(%rbp,%rcx,4)
  lea    0x9(%rdx),%ecx
  cmp    %ecx,%eax
  jle    L356
  movslq %ecx,%rcx
  movsbl (%rsi,%rcx,1),%edi
  mov    %edi,-0x100(%rbp,%rcx,4)
  lea    0xa(%rdx),%ecx
  cmp    %ecx,%eax
  jle    L356
  movslq %ecx,%rcx
  movsbl (%rsi,%rcx,1),%edi
  mov    %edi,-0x100(%rbp,%rcx,4)
  lea    0xb(%rdx),%ecx
  cmp    %ecx,%eax
  jle    L356
  movslq %ecx,%rcx
  movsbl (%rsi,%rcx,1),%edi
  mov    %edi,-0x100(%rbp,%rcx,4)
  lea    0xc(%rdx),%ecx
  cmp    %ecx,%eax
  jle    L356
  movslq %ecx,%rcx
  movsbl (%rsi,%rcx,1),%edi
  mov    %edi,-0x100(%rbp,%rcx,4)
  lea    0xd(%rdx),%ecx
  cmp    %ecx,%eax
  jle    L356
  movslq %ecx,%rcx
  add    $0xe,%edx
  movsbl (%rsi,%rcx,1),%edi
  mov    %edi,-0x100(%rbp,%rcx,4)
  cmp    %edx,%eax
  jle    L356
  movslq %edx,%rdx
  movsbl (%rsi,%rdx,1),%eax
  mov    %eax,-0x100(%rbp,%rdx,4)
  nopw   0x0(%rax,%rax,1)
L356:
  lea    -0x120(%rbp),%rcx
  lea    -0x100(%rbp),%rdx
  xor    %r8d,%r8d
  mov    $0x398,%edi
  lea    -0x140(%rbp),%rsi
  mov    %r11,-0x160(%rbp)
  call   <_ada_use_c2phc@plt>
  movdqa -0x100(%rbp),%xmm5
  movdqa -0xf0(%rbp),%xmm7
  movdqa -0xe0(%rbp),%xmm6
  mov    -0x160(%rbp),%r11
  movups %xmm5,0x0(%r13)
  movdqa -0xd0(%rbp),%xmm5
  movups %xmm7,0x10(%r13)
  movdqa -0xc0(%rbp),%xmm7
  movups %xmm6,0x20(%r13)
  movdqa -0xb0(%rbp),%xmm6
  movups %xmm5,0x30(%r13)
  movdqa -0xa0(%rbp),%xmm5
  movups %xmm7,(%r12)
  movdqa -0x90(%rbp),%xmm7
  movups %xmm6,0x10(%r12)
  movdqa -0x80(%rbp),%xmm6
  movups %xmm5,0x20(%r12)
  movdqa -0x70(%rbp),%xmm5
  movups %xmm7,0x30(%r12)
  movdqa -0x60(%rbp),%xmm7
  movups %xmm6,(%rbx)
  movdqa -0x50(%rbp),%xmm6
  movups %xmm5,0x10(%rbx)
  movups %xmm7,0x20(%rbx)
  movups %xmm6,0x30(%rbx)
L400:
  mov    -0x140(%rbp),%edx
  mov    -0x148(%rbp),%rbx
  mov    -0x158(%rbp),%rsi
  mov    %edx,(%rbx)
  mov    -0x13c(%rbp),%edx
  mov    -0x150(%rbp),%rbx
  mov    %edx,(%r15)
  mov    -0x138(%rbp),%edx
  mov    %edx,(%r14)
  mov    -0x134(%rbp),%edx
  mov    %edx,(%r11)
  mov    -0x130(%rbp),%edx
  mov    %edx,(%rbx)
  mov    -0x12c(%rbp),%edx
  mov    %edx,(%rsi)
  mov    -0x38(%rbp),%rdx
  sub    %fs:0x28,%rdx
  jne    L420
  lea    -0x28(%rbp),%rsp
  pop    %rbx
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  pop    %rbp
  ret
L374:
  xor    %edx,%edx
  jmp    L259
L420:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
int standard_condition_report(int maxit, double tolres, double tolerr, double tolsing, int nbc, char *name, int *cntfail, int *cntreal, int *cntcmplx, int *cntregu, int *cntsing, int *cntclus, int *t_err, int *t_rco, int *t_res, int verbose) {
  int fail, idx;
  int a[6];
  double c[3];
  a[0] = maxit;
  a[1] = verbose;
  a[2] = nbc;
  c[0] = tolres;
  c[1] = tolerr;
  c[2] = tolsing;
  if (nbc == 0) {
    int b[48];
    fail = _ada_use_c2phc(920, a, b, c, 0);
    idx = 0;
    for (int i = 0; i < 16; i++)
      t_err[i] = b[idx++];
    for (int i = 0; i < 16; i++)
      t_rco[i] = b[idx++];
    for (int i = 0; i < 16; i++)
      t_res[i] = b[idx++];
  } else if (nbc > 48) {
    int b[nbc];
    for (int i = 0; i < nbc; i++)
      b[i] = (int)name[i];
    fail = _ada_use_c2phc(920, a, b, c, 0);
    idx = 0;
    for (int i = 0; i < 16; i++)
      t_err[i] = b[idx++];
    for (int i = 0; i < 16; i++)
      t_rco[i] = b[idx++];
    for (int i = 0; i < 16; i++)
      t_res[i] = b[idx++];
  } else {
    int b[48];
    for (int i = 0; i < nbc; i++)
      b[i] = (int)name[i];
    fail = _ada_use_c2phc(920, a, b, c, 0);
    idx = 0;
    for (int i = 0; i < 16; i++)
      t_err[i] = b[idx++];
    for (int i = 0; i < 16; i++)
      t_rco[i] = b[idx++];
    for (int i = 0; i < 16; i++)
      t_res[i] = b[idx++];
  }
  *cntfail = a[0];
  *cntreal = a[1];
  *cntcmplx = a[2];
  *cntregu = a[3];
  *cntsing = a[4];
  *cntclus = a[5];
  return fail;
}
```