user: 下面的汇编指令对应的C源代码是什么：

```asm
<dxsmooth>:
  endbr64
  mov    (%rsi),%r8d
  mov    %rdi,%rax
  xor    %edx,%edx
  test   %r8d,%r8d
  jle    L250
  nopl   0x0(%rax)
L326:
  mov    0x280(%rax),%ecx
  mov    (%rax),%r10d
  lea    -0x1(%r8),%r9d
  test   %rdx,%rdx
  je     L112
  mov    0x27c(%rax),%r11d
  cmp    %edx,%r9d
  je     L8
  mov    0x284(%rax),%r9d
L26:
  cmp    $0x61,%ecx
  je     L212
  cmp    $0x60,%ecx
  je     L236
  cmp    $0x5a,%ecx
  jne    L245
  cmp    $0x1,%r10d
  jle    L357
L21:
  movl   $0x5b,0x280(%rax)
  mov    (%rsi),%r8d
  nop
L273:
  add    $0x1,%rdx
  add    $0x4,%rax
  cmp    %edx,%r8d
  jg     L326
L250:
  jmp    1050 <grwp@plt>
  nopw   0x0(%rax,%rax,1)
L112:
  test   %r9d,%r9d
  je     L59
  mov    0x284(%rax),%r9d
  cmp    $0x61,%ecx
  je     L233
L281:
  cmp    $0x60,%ecx
  je     L226
  cmp    $0x5a,%ecx
  je     L203
  cmp    $0x5c,%ecx
  jne    L273
L242:
  movl   $0x5d,0x280(%rdi)
  mov    (%rsi),%r8d
  jmp    L273
  nop
L236:
  lea    -0x5b(%r11),%ecx
  cmp    $0x1,%ecx
  jbe    L21
  cmp    $0x5d,%r11d
  je     L82
  cmp    $0x5a,%r11d
  je     L82
  cmp    $0x5a,%r9d
  je     L21
L82:
  movl   $0x5d,0x280(%rax)
  mov    (%rsi),%r8d
  jmp    L273
  nopw   0x0(%rax,%rax,1)
L226:
  cmp    $0x5a,%r9d
  jne    L242
L203:
  movl   $0x5b,0x280(%rdi)
  mov    (%rsi),%r8d
  jmp    L273
  nopl   0x0(%rax,%rax,1)
L212:
  cmp    $0x3,%r10d
  jle    L236
  movl   $0x5f,0x280(%rax)
  mov    (%rsi),%r8d
  jmp    L273
  nopl   0x0(%rax,%rax,1)
L8:
  xor    %r9d,%r9d
  jmp    L26
  nopl   0x0(%rax,%rax,1)
L59:
  cmp    $0x61,%ecx
  jne    L281
  cmp    $0x2,%r10d
  jne    L233
  cmp    $0x1,%r8d
  je     L200
  nopl   (%rax)
L233:
  cmp    $0x3,%r10d
  jle    L226
L200:
  movl   $0x5f,0x280(%rdi)
  mov    (%rsi),%r8d
  jmp    L273
L245:
  cmp    $0x5c,%ecx
  jne    L273
  cmp    $0x1,%r10d
  jg     L82
  cmp    $0x5d,%r11d
  je     L82
  cmp    $0x5a,%r11d
  je     L82
  cmp    $0x5f,%r11d
  jne    L273
  jmp    L82
  cs nopw 0x0(%rax,%rax,1)
L357:
  lea    -0x5b(%r11),%ecx
  cmp    $0x1,%ecx
  jbe    L21
  cmp    $0x5f,%r11d
  jne    L273
  jmp    L21
```

assistant: ```c
__attribute__((visibility("hidden"))) void dxsmooth(int list[2][160], int *indexliste) {
  int i, last, next;
  for (i = 0; i < *(indexliste); i++) {
    int current = list[1][i];
    int length = list[0][i];
    if (i != 0) {
      last = list[1][i - 1];
    } else {
      last = 0;
    }
    if (i != *(indexliste)-1) {
      next = list[1][i + 1];
    } else {
      next = 0;
    }
    if (i == 0) {
      if (current == 97) {
        if ((*(indexliste) == 1) && (length == 2)) {
          list[1][i] = 95;
          current = 95;
        } else if (length >= 4) {
          list[1][i] = 95;
          current = 95;
        } else {
          current = 96;
        }
      }
      if (current == 96) {
        if (next == 90) {
          list[1][i] = 91;
        } else {
          list[1][i] = 93;
        }
      } else if (current == 90) {
        list[1][i] = 91;
      } else if (current == 92) {
        list[1][i] = 93;
      }
    } else {
      if (current == 97) {
        if (length >= 4) {
          list[1][i] = 95;
          current = 95;
        } else {
          current = 96;
        }
      }
      if (current == 96) {
        if (last == 91 || last == 92) {
          list[1][i] = 91;
        } else if (last == 93 || last == 90) {
          list[1][i] = 93;
        } else if (next == 90) {
          list[1][i] = 91;
        } else {
          list[1][i] = 93;
        }
      } else if (current == 90) {
        if (length > 1) {
          list[1][i] = 91;
        } else if (last == 91 || last == 92) {
          list[1][i] = 91;
        } else if (last == 95) {
          list[1][i] = 91;
        }
      } else if (current == 92) {
        if (length > 1) {
          list[1][i] = 93;
        } else if (last == 93 || last == 90) {
          list[1][i] = 93;
        } else if (last == 95) {
          list[1][i] = 93;
        }
      }
    }
  }
  grwp(list, indexliste);
}
```