user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<skipfx>:
  endbr64
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  push   %rbx
  movzbl (%rdi),%ebx
  cmp    $0x9,%bl
  je     L707
  cmp    $0x20,%bl
  jne    L614
  nopl   0x0(%rax,%rax,1)
L707:
  movzbl 0x1(%r12),%ebx
  add    $0x1,%r12
  cmp    $0x20,%bl
  je     L707
  cmp    $0x9,%bl
  je     L707
  cmp    %r12,%rdi
  je     L614
  movb   $0x0,(%r12)
  xor    %eax,%eax
  call   <poot@plt>
  mov    %bl,(%r12)
L614:
  cmp    $0x74,%bl
  je     L813
L946:
  cmp    $0x73,%bl
  jne    L878
  cmpb   $0x74,0x1(%r12)
  je     L863
L849:
  mov    %r12,%rax
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
  nopl   0x0(%rax,%rax,1)
L878:
  cmp    $0x75,%bl
  jne    L738
L0:
  cmpb   $0x6e,0x1(%r12)
  jne    L849
  cmpb   $0x73,0x2(%r12)
  jne    L849
  cmpb   $0x69,0x3(%r12)
  jne    L849
  cmpb   $0x67,0x4(%r12)
  jne    L849
  cmpb   $0x6e,0x5(%r12)
  jne    L849
  cmpb   $0x65,0x6(%r12)
  jne    L849
  cmpb   $0x64,0x7(%r12)
  jne    L849
  nopl   0x0(%rax)
L132:
  xor    %eax,%eax
  mov    %r12,%rdi
  call   <fndws@plt>
  test   %eax,%eax
  jne    L126
L295:
  movzbl (%r12),%ebx
L362:
  cmp    $0x72,%bl
  jne    L849
  cmpb   $0x65,0x1(%r12)
  jne    L849
  cmpb   $0x74,0x2(%r12)
  jne    L849
  cmpb   $0x75,0x3(%r12)
  jne    L849
  cmpb   $0x72,0x4(%r12)
  jne    L849
  cmpb   $0x6e,0x5(%r12)
  jne    L849
  mov    %r12,%rdi
  xor    %eax,%eax
  xor    %r12d,%r12d
  call   <poot@plt>
  jmp    L849
  xchg   %ax,%ax
L813:
  cmpb   $0x79,0x1(%r12)
  jne    L849
  cmpb   $0x70,0x2(%r12)
  jne    L849
  cmpb   $0x65,0x3(%r12)
  jne    L849
  cmpb   $0x64,0x4(%r12)
  jne    L849
  cmpb   $0x65,0x5(%r12)
  jne    L849
  cmpb   $0x66,0x6(%r12)
  jne    L849
  xor    %eax,%eax
  mov    %r12,%rdi
  call   <fndws@plt>
  test   %eax,%eax
  jne    L486
L349:
  movzbl (%r12),%ebx
  jmp    L946
  nopl   0x0(%rax)
L738:
  cmp    $0x64,%bl
  jne    L235
  cmpb   $0x6f,0x1(%r12)
  je     L132
  mov    %r12,%rax
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
  nopl   0x0(%rax)
L235:
  cmp    $0x65,%bl
  jne    L362
  cmpb   $0x6c,0x1(%r12)
  jne    L849
  cmpb   $0x73,0x2(%r12)
  jne    L849
  cmpb   $0x65,0x3(%r12)
  jne    L849
  jmp    L132
  nopw   0x0(%rax,%rax,1)
L863:
  cmpb   $0x61,0x2(%r12)
  je     L617
L331:
  movzbl 0x2(%r12),%eax
  cmp    $0x72,%al
  je     L506
  cmp    $0x61,%al
  jne    L849
  cmpb   $0x74,0x3(%r12)
  jne    L849
  cmpb   $0x69,0x4(%r12)
  jne    L849
  cmpb   $0x63,0x5(%r12)
  jne    L849
  jmp    L132
  nopw   0x0(%rax,%rax,1)
L126:
  movslq %eax,%rdi
  xor    %eax,%eax
  call   <fndnws@plt>
  test   %eax,%eax
  je     L295
  movslq %eax,%rbx
L9:
  movzbl (%rbx),%ebp
  movb   $0x0,(%rbx)
  mov    %r12,%rdi
  xor    %eax,%eax
  mov    %rbx,%r12
  call   <poot@plt>
  mov    %bpl,(%rbx)
  jmp    L849
L506:
  cmpb   $0x75,0x3(%r12)
  jne    L849
  cmpb   $0x63,0x4(%r12)
  jne    L849
  cmpb   $0x74,0x5(%r12)
  jne    L849
  jmp    L132
  nopl   0x0(%rax)
L617:
  cmpb   $0x74,0x3(%r12)
  jne    L331
  cmpb   $0x69,0x4(%r12)
  jne    L331
  cmpb   $0x63,0x5(%r12)
  jne    L331
  cmpb   $0x20,0x6(%r12)
  jne    L331
  movzbl 0x7(%r12),%eax
  cmp    $0x75,%al
  je     L61
  cmp    $0x73,%al
  jne    L778
  cmpb   $0x74,0x8(%r12)
  je     L135
L862:
  cmpb   $0x65,0x9(%r12)
  jne    L331
  cmpb   $0x6c,0xa(%r12)
  jne    L331
  cmpb   $0x73,0xb(%r12)
  jne    L331
  cmpb   $0x65,0xc(%r12)
  jne    L331
L271:
  xor    %eax,%eax
  mov    %r12,%rdi
  call   <fndws@plt>
  test   %eax,%eax
  jne    L734
L355:
  movzbl (%r12),%ebx
  cmp    $0x75,%bl
  je     L0
  cmp    $0x73,%bl
  jne    L738
  cmpb   $0x74,0x1(%r12)
  je     L331
  jmp    L849
L486:
  movslq %eax,%rdi
  xor    %eax,%eax
  call   <fndnws@plt>
  movslq %eax,%rbx
  test   %ebx,%ebx
  je     L349
  cmpb   $0x75,(%rbx)
  jne    L9
  cmpb   $0x6e,0x1(%rbx)
  jne    L9
  cmpb   $0x73,0x2(%rbx)
  jne    L9
  cmpb   $0x69,0x3(%rbx)
  jne    L9
  cmpb   $0x67,0x4(%rbx)
  jne    L9
  cmpb   $0x6e,0x5(%rbx)
  jne    L9
  cmpb   $0x65,0x6(%rbx)
  jne    L9
  cmpb   $0x64,0x7(%rbx)
  jne    L9
  xor    %eax,%eax
  lea    0x7(%rbx),%rdi
  call   <fndws@plt>
  test   %eax,%eax
  je     L9
  movslq %eax,%rdi
  xor    %eax,%eax
  call   <fndnws@plt>
  movslq %eax,%rdx
  test   %eax,%eax
  cmovne %rdx,%rbx
  jmp    L9
L734:
  movslq %eax,%rdi
  xor    %eax,%eax
  call   <fndnws@plt>
  test   %eax,%eax
  je     L355
  movslq %eax,%rdi
  xor    %eax,%eax
  call   <fndws@plt>
  test   %eax,%eax
  je     L355
  movslq %eax,%rdi
  xor    %eax,%eax
  call   <fndnws@plt>
  movslq %eax,%rbx
  test   %ebx,%ebx
  je     L355
  jmp    L9
L135:
  cmpb   $0x72,0x9(%r12)
  jne    L862
  cmpb   $0x75,0xa(%r12)
  jne    L331
  cmpb   $0x63,0xb(%r12)
  jne    L331
  cmpb   $0x74,0xc(%r12)
  jne    L331
  jmp    L271
L778:
  cmp    $0x64,%al
  jne    L862
  cmpb   $0x6f,0x8(%r12)
  jne    L862
  jmp    L271
L61:
  cmpb   $0x6e,0x8(%r12)
  jne    L862
  cmpb   $0x73,0x9(%r12)
  jne    L862
  cmpb   $0x69,0xa(%r12)
  jne    L331
  cmpb   $0x67,0xb(%r12)
  jne    L331
  cmpb   $0x6e,0xc(%r12)
  jne    L331
  cmpb   $0x65,0xd(%r12)
  jne    L331
  cmpb   $0x64,0xe(%r12)
  jne    L331
  jmp    L271
```

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;
}
```