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

```asm
<skipfx>:
  endbr64
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  push   %rbx
  movzbl (%rdi),%ebx
  cmp    $0x9,%bl
  je     L508
  cmp    $0x20,%bl
  jne    L598
  nopl   0x0(%rax,%rax,1)
L508:
  movzbl 0x1(%r12),%ebx
  add    $0x1,%r12
  cmp    $0x20,%bl
  je     L508
  cmp    $0x9,%bl
  je     L508
  cmp    %r12,%rdi
  je     L598
  movb   $0x0,(%r12)
  xor    %eax,%eax
  call   <poot@plt>
  mov    %bl,(%r12)
L598:
  cmp    $0x74,%bl
  je     L75
L437:
  cmp    $0x73,%bl
  jne    L227
  cmpb   $0x74,0x1(%r12)
  je     L762
L534:
  cmpb   $0x72,(%r12)
  jne    L734
  cmpb   $0x65,0x1(%r12)
  je     L858
L734:
  mov    %r12,%rax
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
  xchg   %ax,%ax
L227:
  cmp    $0x75,%bl
  jne    L633
  cmpb   $0x6e,0x1(%r12)
  jne    L534
L836:
  cmpb   $0x73,0x2(%r12)
  jne    L734
  cmpb   $0x69,0x3(%r12)
  jne    L734
  cmpb   $0x67,0x4(%r12)
  jne    L734
  cmpb   $0x6e,0x5(%r12)
  jne    L734
  cmpb   $0x65,0x6(%r12)
  jne    L734
  cmpb   $0x64,0x7(%r12)
  jne    L734
  nopl   0x0(%rax)
L701:
  xor    %eax,%eax
  mov    %r12,%rdi
  call   <fndws@plt>
  test   %eax,%eax
  je     L534
  movslq %eax,%rdi
  xor    %eax,%eax
  call   <fndnws@plt>
  test   %eax,%eax
  je     L534
  movslq %eax,%rbx
L681:
  movzbl (%rbx),%ebp
  movb   $0x0,(%rbx)
  mov    %r12,%rdi
  xor    %eax,%eax
  mov    %rbx,%r12
  call   <poot@plt>
  mov    %bpl,(%rbx)
  jmp    L734
  cs nopw 0x0(%rax,%rax,1)
L75:
  cmpb   $0x79,0x1(%r12)
  jne    L534
  cmpb   $0x70,0x2(%r12)
  jne    L534
  cmpb   $0x65,0x3(%r12)
  jne    L534
  cmpb   $0x64,0x4(%r12)
  jne    L534
  cmpb   $0x65,0x5(%r12)
  jne    L534
  cmpb   $0x66,0x6(%r12)
  jne    L534
  xor    %eax,%eax
  mov    %r12,%rdi
  call   <fndws@plt>
  test   %eax,%eax
  jne    L870
L814:
  movzbl (%r12),%ebx
  jmp    L437
  nopl   0x0(%rax)
L633:
  cmp    $0x64,%bl
  jne    L166
  cmpb   $0x6f,0x1(%r12)
  je     L701
  mov    %r12,%rax
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
  nopl   0x0(%rax)
L166:
  cmp    $0x65,%bl
  jne    L534
  cmpb   $0x6c,0x1(%r12)
  jne    L734
  cmpb   $0x73,0x2(%r12)
  jne    L734
  cmpb   $0x65,0x3(%r12)
  jne    L734
  jmp    L701
  nopw   0x0(%rax,%rax,1)
L858:
  cmpb   $0x74,0x2(%r12)
  jne    L734
  cmpb   $0x75,0x3(%r12)
  jne    L734
  cmpb   $0x72,0x4(%r12)
  jne    L734
  cmpb   $0x6e,0x5(%r12)
  jne    L734
  mov    %r12,%rdi
  xor    %eax,%eax
  xor    %r12d,%r12d
  call   <poot@plt>
  jmp    L734
  nopw   0x0(%rax,%rax,1)
L762:
  cmpb   $0x61,0x2(%r12)
  je     L577
L654:
  movzbl 0x2(%r12),%eax
  cmp    $0x72,%al
  je     L686
  cmp    $0x61,%al
  jne    L534
  cmpb   $0x74,0x3(%r12)
  jne    L534
  cmpb   $0x69,0x4(%r12)
  jne    L534
  cmpb   $0x63,0x5(%r12)
  jne    L534
  jmp    L701
  nop
L577:
  cmpb   $0x74,0x3(%r12)
  jne    L654
  cmpb   $0x69,0x4(%r12)
  jne    L654
  cmpb   $0x63,0x5(%r12)
  jne    L654
  cmpb   $0x20,0x6(%r12)
  jne    L654
  movzbl 0x7(%r12),%eax
  cmp    $0x75,%al
  je     L315
  cmp    $0x73,%al
  jne    L16
  cmpb   $0x74,0x8(%r12)
  je     L737
L147:
  cmpb   $0x65,0x9(%r12)
  jne    L654
  cmpb   $0x6c,0xa(%r12)
  jne    L654
  cmpb   $0x73,0xb(%r12)
  jne    L654
  cmpb   $0x65,0xc(%r12)
  jne    L654
L109:
  xor    %eax,%eax
  mov    %r12,%rdi
  call   <fndws@plt>
  test   %eax,%eax
  jne    L110
L594:
  movzbl (%r12),%ebx
  cmp    $0x75,%bl
  jne    L417
  cmpb   $0x6e,0x1(%r12)
  jne    L734
  jmp    L836
  nopl   0x0(%rax,%rax,1)
L686:
  cmpb   $0x75,0x3(%r12)
  jne    L534
  cmpb   $0x63,0x4(%r12)
  jne    L534
  cmpb   $0x74,0x5(%r12)
  jne    L534
  jmp    L701
L870:
  movslq %eax,%rdi
  xor    %eax,%eax
  call   <fndnws@plt>
  movslq %eax,%rbx
  test   %ebx,%ebx
  je     L814
  cmpb   $0x75,(%rbx)
  jne    L681
  cmpb   $0x6e,0x1(%rbx)
  jne    L681
  cmpb   $0x73,0x2(%rbx)
  jne    L681
  cmpb   $0x69,0x3(%rbx)
  jne    L681
  cmpb   $0x67,0x4(%rbx)
  jne    L681
  cmpb   $0x6e,0x5(%rbx)
  jne    L681
  cmpb   $0x65,0x6(%rbx)
  jne    L681
  cmpb   $0x64,0x7(%rbx)
  jne    L681
  xor    %eax,%eax
  lea    0x7(%rbx),%rdi
  call   <fndws@plt>
  test   %eax,%eax
  je     L681
  movslq %eax,%rdi
  xor    %eax,%eax
  call   <fndnws@plt>
  movslq %eax,%rdx
  test   %eax,%eax
  cmovne %rdx,%rbx
  jmp    L681
L417:
  cmp    $0x73,%bl
  jne    L633
  cmpb   $0x74,0x1(%r12)
  je     L654
  jmp    L734
L110:
  movslq %eax,%rdi
  xor    %eax,%eax
  call   <fndnws@plt>
  test   %eax,%eax
  je     L594
  movslq %eax,%rdi
  xor    %eax,%eax
  call   <fndws@plt>
  test   %eax,%eax
  je     L594
  movslq %eax,%rdi
  xor    %eax,%eax
  call   <fndnws@plt>
  movslq %eax,%rbx
  test   %ebx,%ebx
  je     L594
  jmp    L681
L737:
  cmpb   $0x72,0x9(%r12)
  jne    L147
  cmpb   $0x75,0xa(%r12)
  jne    L654
  cmpb   $0x63,0xb(%r12)
  jne    L654
  cmpb   $0x74,0xc(%r12)
  jne    L654
  jmp    L109
L16:
  cmp    $0x64,%al
  jne    L147
  cmpb   $0x6f,0x8(%r12)
  jne    L147
  jmp    L109
L315:
  cmpb   $0x6e,0x8(%r12)
  jne    L147
  cmpb   $0x73,0x9(%r12)
  jne    L147
  cmpb   $0x69,0xa(%r12)
  jne    L654
  cmpb   $0x67,0xb(%r12)
  jne    L654
  cmpb   $0x6e,0xc(%r12)
  jne    L654
  cmpb   $0x65,0xd(%r12)
  jne    L654
  cmpb   $0x64,0xe(%r12)
  jne    L654
  jmp    L109
```

assistant: ```c
char *skipfx(s)
char *s;
{
  char c, *t = s, *tt;
  while ((*s == ' ') || (*s == '\t'))
    *s++;
  if (s != t) {
    c = *s;
    *s = '\0';
    poot(t);
    *s = c;
  }
  if (((s[0] == 't') && (s[1] == 'y') && (s[2] == 'p') && (s[3] == 'e') && (s[4] == 'd') && (s[5] == 'e') && (s[6] == 'f')) && (t = fndws(s)) && (t = fndnws(t))) {
    if ((t[0] == 'u') && (t[1] == 'n') && (t[2] == 's') && (t[3] == 'i') && (t[4] == 'g') && (t[5] == 'n') && (t[6] == 'e') && (t[7] == 'd') && (tt = fndws(t + 7)) && (tt = fndnws(tt)))
      t = tt;
    c = *t;
    *t = '\0';
    poot(s);
    *t = c;
    s = t;
  } else if (((s[0] == 's') && (s[1] == 't') && (s[2] == 'a') && (s[3] == 't') && (s[4] == 'i') && (s[5] == 'c') && (s[6] == ' ')) && (((s[7] == 'u') && (s[8] == 'n') && (s[9] == 's') && (s[10] == 'i') && (s[11] == 'g') && (s[12] == 'n') && (s[13] == 'e') && (s[14] == 'd')) || ((s[7] == 's') && (s[8] == 't') && (s[9] == 'r') && (s[10] == 'u') && (s[11] == 'c') && (s[12] == 't')) || ((s[7] == 'd') && (s[8] == 'o')) || ((s[9] == 'e') && (s[10] == 'l') && (s[11] == 's') && (s[12] == 'e'))) && (t = fndws(s)) && (t = fndnws(t)) && (t = fndws(t)) && (t = fndnws(t))) {
    c = *t;
    *t = '\0';
    poot(s);
    *t = c;
    s = t;
  } else if ((((s[0] == 'u') && (s[1] == 'n') && (s[2] == 's') && (s[3] == 'i') && (s[4] == 'g') && (s[5] == 'n') && (s[6] == 'e') && (s[7] == 'd')) || ((s[0] == 's') && (s[1] == 't') && (s[2] == 'r') && (s[3] == 'u') && (s[4] == 'c') && (s[5] == 't')) || ((s[0] == 's') && (s[1] == 't') && (s[2] == 'a') && (s[3] == 't') && (s[4] == 'i') && (s[5] == 'c')) || ((s[0] == 'd') && (s[1] == 'o')) || ((s[0] == 'e') && (s[1] == 'l') && (s[2] == 's') && (s[3] == 'e'))) && (t = fndws(s)) && (t = fndnws(t))) {
    c = *t;
    *t = '\0';
    poot(s);
    *t = c;
    s = t;
  } else if ((s[0] == 'r') && (s[1] == 'e') && (s[2] == 't') && (s[3] == 'u') && (s[4] == 'r') && (s[5] == 'n')) {
    poot(s);
    return 0;
  }
  return s;
}
```