user: What would the C source look like for the assembly code provided here?

```asm
<parse_access>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  cmp    $0x9,%eax
  je     L48
  mov    $0xffffffff,%eax
  jmp    L205
L48:
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x2d,%al
  je     L216
  mov    -0x8(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x72,%al
  je     L216
  mov    $0xffffffff,%eax
  jmp    L205
L216:
  mov    -0x8(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0x2d,%al
  je     L29
  mov    -0x8(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0x77,%al
  je     L29
  mov    $0xffffffff,%eax
  jmp    L205
L29:
  mov    -0x8(%rbp),%rax
  add    $0x2,%rax
  movzbl (%rax),%eax
  cmp    $0x2d,%al
  je     L179
  mov    -0x8(%rbp),%rax
  add    $0x2,%rax
  movzbl (%rax),%eax
  cmp    $0x78,%al
  je     L179
  mov    $0xffffffff,%eax
  jmp    L205
L179:
  mov    -0x8(%rbp),%rax
  add    $0x3,%rax
  movzbl (%rax),%eax
  cmp    $0x2d,%al
  je     L212
  mov    -0x8(%rbp),%rax
  add    $0x3,%rax
  movzbl (%rax),%eax
  cmp    $0x72,%al
  je     L212
  mov    $0xffffffff,%eax
  jmp    L205
L212:
  mov    -0x8(%rbp),%rax
  add    $0x4,%rax
  movzbl (%rax),%eax
  cmp    $0x2d,%al
  je     L82
  mov    -0x8(%rbp),%rax
  add    $0x4,%rax
  movzbl (%rax),%eax
  cmp    $0x77,%al
  je     L82
  mov    $0xffffffff,%eax
  jmp    L205
L82:
  mov    -0x8(%rbp),%rax
  add    $0x5,%rax
  movzbl (%rax),%eax
  cmp    $0x2d,%al
  je     L40
  mov    -0x8(%rbp),%rax
  add    $0x5,%rax
  movzbl (%rax),%eax
  cmp    $0x78,%al
  je     L40
  mov    $0xffffffff,%eax
  jmp    L205
L40:
  mov    -0x8(%rbp),%rax
  add    $0x6,%rax
  movzbl (%rax),%eax
  cmp    $0x2d,%al
  je     L68
  mov    -0x8(%rbp),%rax
  add    $0x6,%rax
  movzbl (%rax),%eax
  cmp    $0x72,%al
  je     L68
  mov    $0xffffffff,%eax
  jmp    L205
L68:
  mov    -0x8(%rbp),%rax
  add    $0x7,%rax
  movzbl (%rax),%eax
  cmp    $0x2d,%al
  je     L26
  mov    -0x8(%rbp),%rax
  add    $0x7,%rax
  movzbl (%rax),%eax
  cmp    $0x77,%al
  je     L26
  mov    $0xffffffff,%eax
  jmp    L205
L26:
  mov    -0x8(%rbp),%rax
  add    $0x8,%rax
  movzbl (%rax),%eax
  cmp    $0x2d,%al
  je     L92
  mov    -0x8(%rbp),%rax
  add    $0x8,%rax
  movzbl (%rax),%eax
  cmp    $0x78,%al
  je     L92
  mov    $0xffffffff,%eax
  jmp    L205
L92:
  mov    $0x0,%eax
L205:
  leave
  ret
```

assistant: ```c
int parse_access(char *accessMode) {
  if (strlen(accessMode) != 9) {
    return -1;
  }
  if (!(accessMode[0] == '-' || accessMode[0] == 'r'))
    return -1;
  if (!(accessMode[1] == '-' || accessMode[1] == 'w'))
    return -1;
  if (!(accessMode[2] == '-' || accessMode[2] == 'x'))
    return -1;
  if (!(accessMode[3] == '-' || accessMode[3] == 'r'))
    return -1;
  if (!(accessMode[4] == '-' || accessMode[4] == 'w'))
    return -1;
  if (!(accessMode[5] == '-' || accessMode[5] == 'x'))
    return -1;
  if (!(accessMode[6] == '-' || accessMode[6] == 'r'))
    return -1;
  if (!(accessMode[7] == '-' || accessMode[7] == 'w'))
    return -1;
  if (!(accessMode[8] == '-' || accessMode[8] == 'x'))
    return -1;
  return 0;
}
```