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

```asm
<dtrset_lib>:
  endbr64
  neg    %esi
  mov    %rdx,%r10
  movapd %xmm0,%xmm1
  push   %r12
  mov    %esi,%edx
  push   %rbp
  mov    %edi,%r8d
  unpcklpd %xmm1,%xmm1
  and    $0x3,%edx
  push   %rbx
  cmp    %edx,%edi
  cmovle %edi,%edx
  test   %edx,%edx
  jle    L115
  movsd  %xmm0,(%r10)
  cmp    $0x1,%edx
  je     L88
  movsd  %xmm0,0x8(%r10)
  movsd  %xmm0,0x28(%r10)
  cmp    $0x3,%edx
  jne    L88
  movsd  %xmm0,0x10(%r10)
  movsd  %xmm0,0x30(%r10)
  movsd  %xmm0,0x50(%r10)
L88:
  lea    -0x4(,%rcx,4),%eax
  movslq %edx,%rsi
  lea    -0x3(%r8),%r11d
  cltq
  add    %rsi,%rax
  lea    (%r10,%rax,8),%rdi
  cmp    %r11d,%edx
  jge    L56
  lea    0x0(,%rcx,4),%r9d
  mov    %rdi,%r10
  mov    %edx,%r12d
  movslq %r9d,%r9
  shl    $0x3,%r9
L49:
  lea    0x0(,%rdx,4),%eax
  lea    0x80(%r9),%rbp
  mov    $0x1,%ebx
  cltq
  lea    (%rdi,%rax,8),%rsi
  nopl   (%rax)
L53:
  test   %edx,%edx
  mov    %ebx,%ecx
  mov    %rdi,%rax
  cmovg  %edx,%ecx
  sub    $0x1,%ecx
  shl    $0x5,%rcx
  lea    0x20(%rdi,%rcx,1),%rcx
  xchg   %ax,%ax
L5:
  movups %xmm1,(%rax)
  add    $0x20,%rax
  movups %xmm1,-0x10(%rax)
  cmp    %rax,%rcx
  jne    L5
  add    $0x4,%edx
  movups %xmm1,(%rsi)
  add    %r9,%rdi
  movups %xmm1,0x10(%rsi)
  movups %xmm1,0x28(%rsi)
  movsd  %xmm0,0x38(%rsi)
  movups %xmm1,0x50(%rsi)
  movsd  %xmm0,0x78(%rsi)
  add    %rbp,%rsi
  cmp    %r11d,%edx
  jl     L53
L135:
  lea    -0x4(%r8),%eax
  sub    %r12d,%eax
  shr    $0x2,%eax
  lea    0x1(%rax),%edi
  lea    0x4(%r12,%rax,4),%edx
  imul   %r9,%rdi
  add    %r10,%rdi
L56:
  cmp    %r8d,%edx
  jge    L93
L114:
  mov    %rdi,%rcx
  xor    %eax,%eax
  nopw   0x0(%rax,%rax,1)
L4:
  add    $0x1,%eax
  movsd  %xmm0,(%rcx)
  add    $0x20,%rcx
  cmp    %edx,%eax
  jle    L4
  add    $0x1,%edx
  add    $0x8,%rdi
  cmp    %edx,%r8d
  jg     L114
L93:
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
L115:
  lea    -0x3(%rdi),%r11d
  test   %r11d,%r11d
  jle    L34
  lea    0x0(,%rcx,4),%r9d
  movups %xmm1,(%r10)
  xor    %r12d,%r12d
  mov    $0x4,%edx
  movslq %r9d,%r9
  movups %xmm1,0x10(%r10)
  shl    $0x3,%r9
  movups %xmm1,0x28(%r10)
  movsd  %xmm0,0x38(%r10)
  lea    (%r10,%r9,1),%rdi
  movups %xmm1,0x50(%r10)
  movsd  %xmm0,0x78(%r10)
  cmp    $0x4,%r11d
  jg     L49
  jmp    L135
L34:
  mov    %r10,%rdi
  xor    %edx,%edx
  test   %r8d,%r8d
  jg     L114
  jmp    L93
```

assistant: ```c
void dtrset_lib(int row, double alpha, int offset, double *pA, int sda) {
  const int bs = 4;
  int ii, jj;
  int col = row;
  int na = (bs - offset % bs) % bs;
  na = row < na ? row : na;
  ii = 0;
  if (na > 0) {
    for (; ii < na; ii++) {
      for (jj = 0; jj <= ii; jj++) {
        pA[jj * bs] = alpha;
      }
      pA += 1;
    }
    pA += bs * (sda - 1);
  }
  for (; ii < row - 3; ii += 4) {
    for (jj = 0; jj < ii; jj++) {
      pA[0 + jj * bs] = alpha;
      pA[1 + jj * bs] = alpha;
      pA[2 + jj * bs] = alpha;
      pA[3 + jj * bs] = alpha;
    }
    pA[0 + (jj + 0) * bs] = alpha;
    pA[1 + (jj + 0) * bs] = alpha;
    pA[2 + (jj + 0) * bs] = alpha;
    pA[3 + (jj + 0) * bs] = alpha;
    pA[1 + (jj + 1) * bs] = alpha;
    pA[2 + (jj + 1) * bs] = alpha;
    pA[3 + (jj + 1) * bs] = alpha;
    pA[2 + (jj + 2) * bs] = alpha;
    pA[3 + (jj + 2) * bs] = alpha;
    pA[3 + (jj + 3) * bs] = alpha;
    pA += bs * sda;
  }
  for (; ii < row; ii++) {
    for (jj = 0; jj < ii + 1; jj++) {
      pA[jj * bs] = alpha;
    }
    pA += 1;
  }
}
```