user: 这段汇编代码用C语言表示是什么样的?

```asm
<mult_cpx_matrix_h>:
  endbr64
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %rdi,%r12
  mov    %rsi,%r13
  mov    %rdx,%r14
  mov    %ecx,%ebp
  test   %r9w,%r9w
  je     L0
  movzwl %r8w,%ebx
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    (%rdx),%rdx
  mov    (%rdi),%rsi
  mov    0x0(%r13),%rdi
  call   <mult_cpx_vector_h@plt>
  mov    0x8(%r12),%rsi
  mov    0x8(%r13),%rdi
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    %ebp,%ecx
  mov    (%r14),%rdx
  call   <mult_cpx_vector_h@plt>
  mov    0x10(%r14),%rdx
  mov    0x10(%r12),%rsi
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    %ebp,%ecx
  mov    0x0(%r13),%rdi
  call   <mult_cpx_vector_h@plt>
  mov    0x10(%r14),%rdx
  mov    0x18(%r12),%rsi
  mov    0x8(%r13),%rdi
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    %ebp,%ecx
  call   <mult_cpx_vector_h@plt>
  mov    0x8(%r14),%rdx
  mov    0x10(%r13),%rdi
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    %ebp,%ecx
  mov    (%r12),%rsi
  call   <mult_cpx_vector_h@plt>
  mov    0x8(%r14),%rdx
  mov    0x8(%r12),%rsi
  mov    0x18(%r13),%rdi
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    %ebp,%ecx
  call   <mult_cpx_vector_h@plt>
  mov    0x18(%r14),%rdx
  mov    0x10(%r12),%rsi
  mov    0x10(%r13),%rdi
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    %ebp,%ecx
  call   <mult_cpx_vector_h@plt>
  mov    0x18(%r14),%rdx
  mov    0x18(%r12),%rsi
  mov    0x18(%r13),%rdi
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    %ebp,%ecx
  call   <mult_cpx_vector_h@plt>
L13:
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
L0:
  movzwl %r8w,%ebx
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    (%rdx),%rdx
  mov    (%rsi),%rsi
  mov    (%rdi),%rdi
  call   <mult_cpx_vector_h@plt>
  mov    0x8(%r13),%rsi
  mov    0x8(%r12),%rdi
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    %ebp,%ecx
  mov    (%r14),%rdx
  call   <mult_cpx_vector_h@plt>
  mov    0x8(%r14),%rdx
  mov    0x10(%r13),%rsi
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    %ebp,%ecx
  mov    (%r12),%rdi
  call   <mult_cpx_vector_h@plt>
  mov    0x8(%r14),%rdx
  mov    0x18(%r13),%rsi
  mov    0x8(%r12),%rdi
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    %ebp,%ecx
  call   <mult_cpx_vector_h@plt>
  mov    0x10(%r14),%rdx
  mov    0x10(%r12),%rdi
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    %ebp,%ecx
  mov    0x0(%r13),%rsi
  call   <mult_cpx_vector_h@plt>
  mov    0x10(%r14),%rdx
  mov    0x8(%r13),%rsi
  mov    0x18(%r12),%rdi
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    %ebp,%ecx
  call   <mult_cpx_vector_h@plt>
  mov    0x18(%r14),%rdx
  mov    0x10(%r13),%rsi
  mov    0x10(%r12),%rdi
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    %ebp,%ecx
  call   <mult_cpx_vector_h@plt>
  mov    0x18(%r14),%rdx
  mov    0x18(%r13),%rsi
  mov    0x18(%r12),%rdi
  mov    $0x1,%r9d
  mov    %ebx,%r8d
  mov    %ebp,%ecx
  call   <mult_cpx_vector_h@plt>
  jmp    L13
```

assistant: ```c
int mult_cpx_matrix_h(short *x1[2][2], short *x2[2][2], short *y[2][2], unsigned int N, unsigned short output_shift, short hermitian) {
  if (hermitian) {
    mult_cpx_vector_h(x2[0][0], x1[0][0], y[0][0], N, output_shift, 1);
    mult_cpx_vector_h(x2[0][1], x1[0][1], y[0][0], N, output_shift, 1);
    mult_cpx_vector_h(x2[0][0], x1[1][0], y[1][0], N, output_shift, 1);
    mult_cpx_vector_h(x2[0][1], x1[1][1], y[1][0], N, output_shift, 1);
    mult_cpx_vector_h(x2[1][0], x1[0][0], y[0][1], N, output_shift, 1);
    mult_cpx_vector_h(x2[1][1], x1[0][1], y[0][1], N, output_shift, 1);
    mult_cpx_vector_h(x2[1][0], x1[1][0], y[1][1], N, output_shift, 1);
    mult_cpx_vector_h(x2[1][1], x1[1][1], y[1][1], N, output_shift, 1);
  } else {
    mult_cpx_vector_h(x1[0][0], x2[0][0], y[0][0], N, output_shift, 1);
    mult_cpx_vector_h(x1[0][1], x2[0][1], y[0][0], N, output_shift, 1);
    mult_cpx_vector_h(x1[0][0], x2[1][0], y[0][1], N, output_shift, 1);
    mult_cpx_vector_h(x1[0][1], x2[1][1], y[0][1], N, output_shift, 1);
    mult_cpx_vector_h(x1[1][0], x2[0][0], y[1][0], N, output_shift, 1);
    mult_cpx_vector_h(x1[1][1], x2[0][1], y[1][0], N, output_shift, 1);
    mult_cpx_vector_h(x1[1][0], x2[1][0], y[1][1], N, output_shift, 1);
    mult_cpx_vector_h(x1[1][1], x2[1][1], y[1][1], N, output_shift, 1);
  }
}
```