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

```asm
<strip>:
  endbr64
  push   %r14
  push   %r13
  mov    %rsi,%r13
  push   %r12
  push   %rbp
  mov    %rdi,%rbp
  push   %rbx
  xor    %ebx,%ebx
  jmp    L91
  cs nopw 0x0(%rax,%rax,1)
L174:
  add    $0x1,%rbx
  cmpb   $0x20,-0x1(%rbp,%rbx,1)
  jne    L182
L91:
  mov    %rbp,%rdi
  mov    %ebx,%r14d
  mov    %ebx,%r12d
  call   <strlen@plt>
  cmp    %ebx,%eax
  jg     L174
L182:
  mov    %rbp,%rdi
  call   <strlen@plt>
  sub    $0x1,%eax
  movslq %eax,%rdx
  add    %rbp,%rdx
  test   %eax,%eax
  jns    L6
  jmp    L38
  nopw   0x0(%rax,%rax,1)
L75:
  sub    $0x1,%eax
  sub    $0x1,%rdx
  cmp    $0xffffffff,%eax
  je     L38
L6:
  cmpb   $0x20,(%rdx)
  je     L75
  cmp    %eax,%r12d
  jg     L38
  movslq %r12d,%rdx
  mov    %r13,%rcx
  mov    %eax,%r9d
  lea    0x1(%rbp,%rdx,1),%rsi
  sub    %r14d,%r9d
  sub    %rsi,%rcx
  cmp    $0xe,%rcx
  jbe    L112
  cmp    $0x6,%r9d
  jbe    L112
  lea    0x1(%r9),%r8d
  cmp    $0xe,%r9d
  jbe    L225
  mov    %r8d,%esi
  lea    0x0(%rbp,%rdx,1),%rcx
  xor    %edx,%edx
  shr    $0x4,%esi
  shl    $0x4,%rsi
  nopl   (%rax)
L156:
  movdqu (%rcx,%rdx,1),%xmm0
  movups %xmm0,0x0(%r13,%rdx,1)
  add    $0x10,%rdx
  cmp    %rsi,%rdx
  jne    L156
  mov    %r8d,%edi
  and    $0xfffffff0,%edi
  lea    (%rdi,%r12,1),%esi
  cmp    %edi,%r8d
  je     L38
  sub    %edi,%r9d
  lea    0x1(%r9),%r8d
  cmp    $0x6,%r9d
  jbe    L24
L150:
  mov    (%rcx,%rdi,1),%rdx
  mov    %rdx,0x0(%r13,%rdi,1)
  mov    %r8d,%edx
  and    $0xfffffff8,%edx
  add    %edx,%esi
  cmp    %edx,%r8d
  je     L38
L24:
  movslq %esi,%rdx
  movzbl 0x0(%rbp,%rdx,1),%ecx
  mov    %esi,%edx
  sub    %r12d,%edx
  movslq %edx,%rdx
  mov    %cl,0x0(%r13,%rdx,1)
  lea    0x1(%rsi),%edx
  cmp    %edx,%eax
  jl     L38
  movslq %edx,%rcx
  sub    %r12d,%edx
  movzbl 0x0(%rbp,%rcx,1),%ecx
  movslq %edx,%rdx
  mov    %cl,0x0(%r13,%rdx,1)
  lea    0x2(%rsi),%edx
  cmp    %edx,%eax
  jl     L38
  movslq %edx,%rcx
  sub    %r12d,%edx
  movzbl 0x0(%rbp,%rcx,1),%ecx
  movslq %edx,%rdx
  mov    %cl,0x0(%r13,%rdx,1)
  lea    0x3(%rsi),%edx
  cmp    %edx,%eax
  jl     L38
  movslq %edx,%rcx
  sub    %r12d,%edx
  movzbl 0x0(%rbp,%rcx,1),%ecx
  movslq %edx,%rdx
  mov    %cl,0x0(%r13,%rdx,1)
  lea    0x4(%rsi),%edx
  cmp    %edx,%eax
  jl     L38
  movslq %edx,%rcx
  sub    %r12d,%edx
  movzbl 0x0(%rbp,%rcx,1),%ecx
  movslq %edx,%rdx
  mov    %cl,0x0(%r13,%rdx,1)
  lea    0x5(%rsi),%edx
  cmp    %edx,%eax
  jl     L38
  movslq %edx,%rcx
  sub    %r12d,%edx
  add    $0x6,%esi
  movzbl 0x0(%rbp,%rcx,1),%ecx
  movslq %edx,%rdx
  mov    %cl,0x0(%r13,%rdx,1)
  cmp    %esi,%eax
  jl     L38
  movslq %esi,%rdx
  sub    %r12d,%esi
  movzbl 0x0(%rbp,%rdx,1),%edx
  movslq %esi,%rsi
  mov    %dl,0x0(%r13,%rsi,1)
L38:
  sub    %r12d,%eax
  pop    %rbx
  pop    %rbp
  add    $0x1,%eax
  pop    %r12
  cltq
  movb   $0x0,0x0(%r13,%rax,1)
  pop    %r13
  pop    %r14
  ret
  nopw   0x0(%rax,%rax,1)
L112:
  mov    %r13,%rsi
  sub    %rdx,%rsi
  xchg   %ax,%ax
L52:
  movzbl 0x0(%rbp,%rdx,1),%ecx
  mov    %cl,(%rsi,%rdx,1)
  add    $0x1,%rdx
  cmp    %edx,%eax
  jge    L52
  jmp    L38
L225:
  mov    %r12d,%esi
  xor    %edi,%edi
  lea    0x0(%rbp,%rdx,1),%rcx
  jmp    L150
```

assistant: ```c
void strip(char *string, char *string2) {
  int i, j, k;
  for (i = 0; i < strlen(string) && string[i] == ' '; i++)
    ;
  for (j = strlen(string) - 1; j >= 0 && string[j] == ' '; j--)
    ;
  for (k = i; k <= j; k++)
    string2[k - i] = string[k];
  string2[j - i + 1] = '\0';
}
```