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

```asm
<getArray>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x38,%rsp
  mov    %rdi,0x8(%rsp)
  mov    %fs:0x28,%rax
  mov    %rax,0x28(%rsp)
  xor    %eax,%eax
  movzbl (%rdi),%eax
  test   %al,%al
  je     L232
  mov    %rdx,%rbx
  cmp    $0x5b,%al
  je     L168
  nopl   (%rax)
L7:
  cmp    $0x20,%al
  je     L40
  cmp    $0x9,%al
  je     L40
  cmp    $0xa,%al
  jne    L232
L40:
  mov    %rdi,%rax
  lea    0x1(%rdi),%rdx
  mov    %rdx,0x8(%rsp)
  movzbl 0x1(%rax),%eax
  mov    %rdx,%rdi
  test   %al,%al
  je     L232
  cmp    $0x5b,%al
  jne    L7
L187:
  lea    0x1(%rdx),%rdi
  mov    %rdx,(%rsi)
  mov    %rdi,0x8(%rsp)
  movzbl 0x1(%rdx),%eax
  test   %al,%al
  je     L232
  lea    0x1f(%rsp),%rbp
L254:
  cmp    $0x5d,%al
  je     L248
L249:
  cmp    $0x20,%al
  je     L1
  cmp    $0x9,%al
  je     L1
  cmp    $0xa,%al
  je     L1
  lea    0x8(%rsp),%rdx
  lea    0x20(%rsp),%rsi
  mov    %rbp,%rcx
  call   <getValue@plt>
  test   %eax,%eax
  jne    L134
  mov    0x8(%rsp),%rdi
  lea    0x1(%rdi),%rcx
  mov    %rcx,0x8(%rsp)
  movzbl 0x1(%rdi),%edx
  test   %dl,%dl
  je     L232
L257:
  cmp    $0x5d,%dl
  je     L243
  cmp    $0x2c,%dl
  je     L119
  cmp    $0x20,%dl
  je     L80
  cmp    $0x9,%dl
  je     L80
  cmp    $0xa,%dl
  jne    L232
L80:
  mov    %rcx,%rdx
  add    $0x1,%rcx
  mov    %rcx,0x8(%rsp)
  movzbl 0x1(%rdx),%edx
  test   %dl,%dl
  jne    L257
  nopl   0x0(%rax)
L232:
  mov    $0x69,%eax
L134:
  mov    0x28(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L266
  add    $0x38,%rsp
  pop    %rbx
  pop    %rbp
  ret
  nopl   0x0(%rax)
L1:
  mov    0x8(%rsp),%rax
  lea    0x1(%rax),%rdi
  mov    %rdi,0x8(%rsp)
  movzbl 0x1(%rax),%eax
  test   %al,%al
  je     L232
  cmp    $0x5d,%al
  jne    L249
L248:
  mov    %rdi,(%rbx)
  xor    %eax,%eax
  jmp    L134
  nopl   (%rax)
L119:
  lea    0x1(%rcx),%rdi
  mov    %rdi,0x8(%rsp)
  movzbl 0x1(%rcx),%eax
  test   %al,%al
  jne    L254
  jmp    L232
  nopw   0x0(%rax,%rax,1)
L168:
  mov    %rdi,%rdx
  jmp    L187
L243:
  mov    %rcx,(%rbx)
  jmp    L134
L266:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
unsigned int getArray(char *start, char **first, char **last) {
  unsigned char state = 0;
  char *dummy;
  unsigned char dummyType;
  unsigned int result;
  while (start[0] != '\0') {
    switch (state) {
    case 0:
      if (start[0] == '[') {
        state = 2;
        *first = start;
      } else if (!(start[0] == ' ' || start[0] == '\t' || start[0] == '\n' || start[0] == '\t')) {
        return 105;
      }
      break;
    case 1:
      if (start[0] == ']') {
        *last = start;
        return 0;
      } else if (start[0] == ',') {
        state = 2;
      } else if (!(start[0] == ' ' || start[0] == '\t' || start[0] == '\n' || start[0] == '\t')) {
        return 105;
      }
      break;
    case 2:
      if (start[0] == ']') {
        *last = start;
        return 0;
      } else if (!(start[0] == ' ' || start[0] == '\t' || start[0] == '\n' || start[0] == '\t')) {
        result = getValue(start, &dummy, &start, &dummyType);
        if (result != 0) {
          return result;
        } else {
          state = 1;
        }
      }
      break;
    }
    ++start;
  }
  return 105;
}
```