user: What is the c source code of the assembly code below?

```asm
<skipfx>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %rdi,-0x28(%rbp)
  mov    -0x28(%rbp),%rax
  mov    %rax,-0x10(%rbp)
  jmp    L442
L165:
  mov    -0x28(%rbp),%rax
  add    $0x1,%rax
  mov    %rax,-0x28(%rbp)
L442:
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x20,%al
  je     L165
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x9,%al
  je     L165
  mov    -0x28(%rbp),%rax
  cmp    -0x10(%rbp),%rax
  je     L783
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  mov    %al,-0x11(%rbp)
  mov    -0x28(%rbp),%rax
  movb   $0x0,(%rax)
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <poot@plt>
  mov    -0x28(%rbp),%rax
  movzbl -0x11(%rbp),%edx
  mov    %dl,(%rax)
L783:
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x74,%al
  jne    L715
  mov    -0x28(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0x79,%al
  jne    L715
  mov    -0x28(%rbp),%rax
  add    $0x2,%rax
  movzbl (%rax),%eax
  cmp    $0x70,%al
  jne    L715
  mov    -0x28(%rbp),%rax
  add    $0x3,%rax
  movzbl (%rax),%eax
  cmp    $0x65,%al
  jne    L715
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  movzbl (%rax),%eax
  cmp    $0x64,%al
  jne    L715
  mov    -0x28(%rbp),%rax
  add    $0x5,%rax
  movzbl (%rax),%eax
  cmp    $0x65,%al
  jne    L715
  mov    -0x28(%rbp),%rax
  add    $0x6,%rax
  movzbl (%rax),%eax
  cmp    $0x66,%al
  jne    L715
  mov    -0x28(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fndws@plt>
  cltq
  mov    %rax,-0x10(%rbp)
  cmpq   $0x0,-0x10(%rbp)
  je     L715
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fndnws@plt>
  cltq
  mov    %rax,-0x10(%rbp)
  cmpq   $0x0,-0x10(%rbp)
  je     L715
  mov    -0x10(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x75,%al
  jne    L6
  mov    -0x10(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0x6e,%al
  jne    L6
  mov    -0x10(%rbp),%rax
  add    $0x2,%rax
  movzbl (%rax),%eax
  cmp    $0x73,%al
  jne    L6
  mov    -0x10(%rbp),%rax
  add    $0x3,%rax
  movzbl (%rax),%eax
  cmp    $0x69,%al
  jne    L6
  mov    -0x10(%rbp),%rax
  add    $0x4,%rax
  movzbl (%rax),%eax
  cmp    $0x67,%al
  jne    L6
  mov    -0x10(%rbp),%rax
  add    $0x5,%rax
  movzbl (%rax),%eax
  cmp    $0x6e,%al
  jne    L6
  mov    -0x10(%rbp),%rax
  add    $0x6,%rax
  movzbl (%rax),%eax
  cmp    $0x65,%al
  jne    L6
  mov    -0x10(%rbp),%rax
  add    $0x7,%rax
  movzbl (%rax),%eax
  cmp    $0x64,%al
  jne    L6
  mov    -0x10(%rbp),%rax
  add    $0x7,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fndws@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  cmpq   $0x0,-0x8(%rbp)
  je     L6
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fndnws@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  cmpq   $0x0,-0x8(%rbp)
  je     L6
  mov    -0x8(%rbp),%rax
  mov    %rax,-0x10(%rbp)
L6:
  mov    -0x10(%rbp),%rax
  movzbl (%rax),%eax
  mov    %al,-0x11(%rbp)
  mov    -0x10(%rbp),%rax
  movb   $0x0,(%rax)
  mov    -0x28(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <poot@plt>
  mov    -0x10(%rbp),%rax
  movzbl -0x11(%rbp),%edx
  mov    %dl,(%rax)
  mov    -0x10(%rbp),%rax
  mov    %rax,-0x28(%rbp)
  jmp    L265
L715:
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x73,%al
  jne    L361
  mov    -0x28(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0x74,%al
  jne    L361
  mov    -0x28(%rbp),%rax
  add    $0x2,%rax
  movzbl (%rax),%eax
  cmp    $0x61,%al
  jne    L361
  mov    -0x28(%rbp),%rax
  add    $0x3,%rax
  movzbl (%rax),%eax
  cmp    $0x74,%al
  jne    L361
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  movzbl (%rax),%eax
  cmp    $0x69,%al
  jne    L361
  mov    -0x28(%rbp),%rax
  add    $0x5,%rax
  movzbl (%rax),%eax
  cmp    $0x63,%al
  jne    L361
  mov    -0x28(%rbp),%rax
  add    $0x6,%rax
  movzbl (%rax),%eax
  cmp    $0x20,%al
  jne    L361
  mov    -0x28(%rbp),%rax
  add    $0x7,%rax
  movzbl (%rax),%eax
  cmp    $0x75,%al
  jne    L139
  mov    -0x28(%rbp),%rax
  add    $0x8,%rax
  movzbl (%rax),%eax
  cmp    $0x6e,%al
  jne    L139
  mov    -0x28(%rbp),%rax
  add    $0x9,%rax
  movzbl (%rax),%eax
  cmp    $0x73,%al
  jne    L139
  mov    -0x28(%rbp),%rax
  add    $0xa,%rax
  movzbl (%rax),%eax
  cmp    $0x69,%al
  jne    L139
  mov    -0x28(%rbp),%rax
  add    $0xb,%rax
  movzbl (%rax),%eax
  cmp    $0x67,%al
  jne    L139
  mov    -0x28(%rbp),%rax
  add    $0xc,%rax
  movzbl (%rax),%eax
  cmp    $0x6e,%al
  jne    L139
  mov    -0x28(%rbp),%rax
  add    $0xd,%rax
  movzbl (%rax),%eax
  cmp    $0x65,%al
  jne    L139
  mov    -0x28(%rbp),%rax
  add    $0xe,%rax
  movzbl (%rax),%eax
  cmp    $0x64,%al
  je     L255
L139:
  mov    -0x28(%rbp),%rax
  add    $0x7,%rax
  movzbl (%rax),%eax
  cmp    $0x73,%al
  jne    L605
  mov    -0x28(%rbp),%rax
  add    $0x8,%rax
  movzbl (%rax),%eax
  cmp    $0x74,%al
  jne    L605
  mov    -0x28(%rbp),%rax
  add    $0x9,%rax
  movzbl (%rax),%eax
  cmp    $0x72,%al
  jne    L605
  mov    -0x28(%rbp),%rax
  add    $0xa,%rax
  movzbl (%rax),%eax
  cmp    $0x75,%al
  jne    L605
  mov    -0x28(%rbp),%rax
  add    $0xb,%rax
  movzbl (%rax),%eax
  cmp    $0x63,%al
  jne    L605
  mov    -0x28(%rbp),%rax
  add    $0xc,%rax
  movzbl (%rax),%eax
  cmp    $0x74,%al
  je     L255
L605:
  mov    -0x28(%rbp),%rax
  add    $0x7,%rax
  movzbl (%rax),%eax
  cmp    $0x64,%al
  jne    L34
  mov    -0x28(%rbp),%rax
  add    $0x8,%rax
  movzbl (%rax),%eax
  cmp    $0x6f,%al
  je     L255
L34:
  mov    -0x28(%rbp),%rax
  add    $0x9,%rax
  movzbl (%rax),%eax
  cmp    $0x65,%al
  jne    L361
  mov    -0x28(%rbp),%rax
  add    $0xa,%rax
  movzbl (%rax),%eax
  cmp    $0x6c,%al
  jne    L361
  mov    -0x28(%rbp),%rax
  add    $0xb,%rax
  movzbl (%rax),%eax
  cmp    $0x73,%al
  jne    L361
  mov    -0x28(%rbp),%rax
  add    $0xc,%rax
  movzbl (%rax),%eax
  cmp    $0x65,%al
  jne    L361
L255:
  mov    -0x28(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fndws@plt>
  cltq
  mov    %rax,-0x10(%rbp)
  cmpq   $0x0,-0x10(%rbp)
  je     L361
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fndnws@plt>
  cltq
  mov    %rax,-0x10(%rbp)
  cmpq   $0x0,-0x10(%rbp)
  je     L361
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fndws@plt>
  cltq
  mov    %rax,-0x10(%rbp)
  cmpq   $0x0,-0x10(%rbp)
  je     L361
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fndnws@plt>
  cltq
  mov    %rax,-0x10(%rbp)
  cmpq   $0x0,-0x10(%rbp)
  je     L361
  mov    -0x10(%rbp),%rax
  movzbl (%rax),%eax
  mov    %al,-0x11(%rbp)
  mov    -0x10(%rbp),%rax
  movb   $0x0,(%rax)
  mov    -0x28(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <poot@plt>
  mov    -0x10(%rbp),%rax
  movzbl -0x11(%rbp),%edx
  mov    %dl,(%rax)
  mov    -0x10(%rbp),%rax
  mov    %rax,-0x28(%rbp)
  jmp    L265
L361:
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x75,%al
  jne    L759
  mov    -0x28(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0x6e,%al
  jne    L759
  mov    -0x28(%rbp),%rax
  add    $0x2,%rax
  movzbl (%rax),%eax
  cmp    $0x73,%al
  jne    L759
  mov    -0x28(%rbp),%rax
  add    $0x3,%rax
  movzbl (%rax),%eax
  cmp    $0x69,%al
  jne    L759
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  movzbl (%rax),%eax
  cmp    $0x67,%al
  jne    L759
  mov    -0x28(%rbp),%rax
  add    $0x5,%rax
  movzbl (%rax),%eax
  cmp    $0x6e,%al
  jne    L759
  mov    -0x28(%rbp),%rax
  add    $0x6,%rax
  movzbl (%rax),%eax
  cmp    $0x65,%al
  jne    L759
  mov    -0x28(%rbp),%rax
  add    $0x7,%rax
  movzbl (%rax),%eax
  cmp    $0x64,%al
  je     L245
L759:
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x73,%al
  jne    L162
  mov    -0x28(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0x74,%al
  jne    L162
  mov    -0x28(%rbp),%rax
  add    $0x2,%rax
  movzbl (%rax),%eax
  cmp    $0x72,%al
  jne    L162
  mov    -0x28(%rbp),%rax
  add    $0x3,%rax
  movzbl (%rax),%eax
  cmp    $0x75,%al
  jne    L162
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  movzbl (%rax),%eax
  cmp    $0x63,%al
  jne    L162
  mov    -0x28(%rbp),%rax
  add    $0x5,%rax
  movzbl (%rax),%eax
  cmp    $0x74,%al
  je     L245
L162:
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x73,%al
  jne    L448
  mov    -0x28(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0x74,%al
  jne    L448
  mov    -0x28(%rbp),%rax
  add    $0x2,%rax
  movzbl (%rax),%eax
  cmp    $0x61,%al
  jne    L448
  mov    -0x28(%rbp),%rax
  add    $0x3,%rax
  movzbl (%rax),%eax
  cmp    $0x74,%al
  jne    L448
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  movzbl (%rax),%eax
  cmp    $0x69,%al
  jne    L448
  mov    -0x28(%rbp),%rax
  add    $0x5,%rax
  movzbl (%rax),%eax
  cmp    $0x63,%al
  je     L245
L448:
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x64,%al
  jne    L419
  mov    -0x28(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0x6f,%al
  je     L245
L419:
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x65,%al
  jne    L440
  mov    -0x28(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0x6c,%al
  jne    L440
  mov    -0x28(%rbp),%rax
  add    $0x2,%rax
  movzbl (%rax),%eax
  cmp    $0x73,%al
  jne    L440
  mov    -0x28(%rbp),%rax
  add    $0x3,%rax
  movzbl (%rax),%eax
  cmp    $0x65,%al
  jne    L440
L245:
  mov    -0x28(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fndws@plt>
  cltq
  mov    %rax,-0x10(%rbp)
  cmpq   $0x0,-0x10(%rbp)
  je     L440
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fndnws@plt>
  cltq
  mov    %rax,-0x10(%rbp)
  cmpq   $0x0,-0x10(%rbp)
  je     L440
  mov    -0x10(%rbp),%rax
  movzbl (%rax),%eax
  mov    %al,-0x11(%rbp)
  mov    -0x10(%rbp),%rax
  movb   $0x0,(%rax)
  mov    -0x28(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <poot@plt>
  mov    -0x10(%rbp),%rax
  movzbl -0x11(%rbp),%edx
  mov    %dl,(%rax)
  mov    -0x10(%rbp),%rax
  mov    %rax,-0x28(%rbp)
  jmp    L265
L440:
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x72,%al
  jne    L265
  mov    -0x28(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0x65,%al
  jne    L265
  mov    -0x28(%rbp),%rax
  add    $0x2,%rax
  movzbl (%rax),%eax
  cmp    $0x74,%al
  jne    L265
  mov    -0x28(%rbp),%rax
  add    $0x3,%rax
  movzbl (%rax),%eax
  cmp    $0x75,%al
  jne    L265
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  movzbl (%rax),%eax
  cmp    $0x72,%al
  jne    L265
  mov    -0x28(%rbp),%rax
  add    $0x5,%rax
  movzbl (%rax),%eax
  cmp    $0x6e,%al
  jne    L265
  mov    -0x28(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <poot@plt>
  mov    $0x0,%eax
  jmp    L310
L265:
  mov    -0x28(%rbp),%rax
L310:
  leave
  ret
```

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