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

```asm
<sdt_1_check>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %rdi,-0x28(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    $0x0,%eax
  call   <createStringArray@plt>
  mov    %rax,-0x10(%rbp)
  movl   $0x0,-0x14(%rbp)
  lea    -0x14(%rbp),%rdx
  mov    -0x10(%rbp),%rcx
  mov    -0x28(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <splitString@plt>
  mov    -0x14(%rbp),%eax
  cmp    $0x3,%eax
  jne    L170
  mov    -0x10(%rbp),%rax
  mov    (%rax),%rax
  lea    D1(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L216
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D304(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L216
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  lea    D162(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L216
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  call   <destroyStringArray@plt>
  mov    $0x1,%eax
  jmp    L246
L216:
  mov    -0x10(%rbp),%rax
  mov    (%rax),%rax
  lea    D1(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L424
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D304(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L424
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  lea    D76(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L424
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  call   <destroyStringArray@plt>
  mov    $0x1,%eax
  jmp    L246
L424:
  mov    -0x10(%rbp),%rax
  mov    (%rax),%rax
  lea    D246(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L40
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D115(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L40
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  lea    D162(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L40
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  call   <destroyStringArray@plt>
  mov    $0x1,%eax
  jmp    L246
L40:
  mov    -0x10(%rbp),%rax
  mov    (%rax),%rax
  lea    D246(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L420
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D115(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L420
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  lea    D76(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L420
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  call   <destroyStringArray@plt>
  mov    $0x1,%eax
  jmp    L246
L420:
  mov    -0x10(%rbp),%rax
  mov    (%rax),%rax
  lea    D1(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L1
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D304(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L1
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  lea    D282(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L1
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  call   <destroyStringArray@plt>
  mov    $0x1,%eax
  jmp    L246
L1:
  mov    -0x10(%rbp),%rax
  mov    (%rax),%rax
  lea    D246(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L170
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D115(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L170
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  lea    D282(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L170
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  call   <destroyStringArray@plt>
  mov    $0x1,%eax
  jmp    L246
L170:
  mov    -0x14(%rbp),%eax
  cmp    $0x4,%eax
  jne    L241
  mov    -0x10(%rbp),%rax
  mov    (%rax),%rax
  lea    D1(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L407
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D304(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L407
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  lea    D162(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L407
  mov    -0x10(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rax
  lea    D13(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L407
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  call   <destroyStringArray@plt>
  mov    $0x1,%eax
  jmp    L246
L407:
  mov    -0x10(%rbp),%rax
  mov    (%rax),%rax
  lea    D246(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L320
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D115(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L320
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  lea    D162(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L320
  mov    -0x10(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rax
  lea    D13(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L320
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  call   <destroyStringArray@plt>
  mov    $0x1,%eax
  jmp    L246
L320:
  mov    -0x10(%rbp),%rax
  mov    (%rax),%rax
  lea    D1(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L378
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D304(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L378
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  lea    D162(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L378
  mov    -0x10(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rax
  lea    D182(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L378
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  call   <destroyStringArray@plt>
  mov    $0x1,%eax
  jmp    L246
L378:
  mov    -0x10(%rbp),%rax
  mov    (%rax),%rax
  lea    D246(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L241
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D115(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L241
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  lea    D162(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L241
  mov    -0x10(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rax
  lea    D182(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L241
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  call   <destroyStringArray@plt>
  mov    $0x1,%eax
  jmp    L246
L241:
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  call   <destroyStringArray@plt>
  mov    $0x0,%eax
L246:
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L331
  call   <__stack_chk_fail@plt>
L331:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D1
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D304
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D162
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D76
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D246
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D115
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D282
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D13
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D182
type_guessed: string

tool: D1: str

tool: D304: r0

tool: D162: [r3]

tool: D76: [r3, #0]

tool: D246: ldr

tool: D115: r1

tool: D282: [r3, #0x0]

tool: D13: #0

tool: D182: #0x0

assistant: ```c
int sdt_1_check(char *line) {
  char **splitted = createStringArray();
  int n = 0;
  splitString(line, splitted, &n);
  if (n == 3) {
    if (strcmp(splitted[0], "str") == 0 && strcmp(splitted[1], "r0") == 0 && strcmp(splitted[2], "[r3]") == 0) {
      destroyStringArray(splitted);
      return 1;
    }
    if (strcmp(splitted[0], "str") == 0 && strcmp(splitted[1], "r0") == 0 && strcmp(splitted[2], "[r3, #0]") == 0) {
      destroyStringArray(splitted);
      return 1;
    }
    if (strcmp(splitted[0], "ldr") == 0 && strcmp(splitted[1], "r1") == 0 && strcmp(splitted[2], "[r3]") == 0) {
      destroyStringArray(splitted);
      return 1;
    }
    if (strcmp(splitted[0], "ldr") == 0 && strcmp(splitted[1], "r1") == 0 && strcmp(splitted[2], "[r3, #0]") == 0) {
      destroyStringArray(splitted);
      return 1;
    }
    if (strcmp(splitted[0], "str") == 0 && strcmp(splitted[1], "r0") == 0 && strcmp(splitted[2], "[r3, #0x0]") == 0) {
      destroyStringArray(splitted);
      return 1;
    }
    if (strcmp(splitted[0], "ldr") == 0 && strcmp(splitted[1], "r1") == 0 && strcmp(splitted[2], "[r3, #0x0]") == 0) {
      destroyStringArray(splitted);
      return 1;
    }
  }
  if (n == 4) {
    if (strcmp(splitted[0], "str") == 0 && strcmp(splitted[1], "r0") == 0 && strcmp(splitted[2], "[r3]") == 0 && strcmp(splitted[3], "#0") == 0) {
      destroyStringArray(splitted);
      return 1;
    }
    if (strcmp(splitted[0], "ldr") == 0 && strcmp(splitted[1], "r1") == 0 && strcmp(splitted[2], "[r3]") == 0 && strcmp(splitted[3], "#0") == 0) {
      destroyStringArray(splitted);
      return 1;
    }
    if (strcmp(splitted[0], "str") == 0 && strcmp(splitted[1], "r0") == 0 && strcmp(splitted[2], "[r3]") == 0 && strcmp(splitted[3], "#0x0") == 0) {
      destroyStringArray(splitted);
      return 1;
    }
    if (strcmp(splitted[0], "ldr") == 0 && strcmp(splitted[1], "r1") == 0 && strcmp(splitted[2], "[r3]") == 0 && strcmp(splitted[3], "#0x0") == 0) {
      destroyStringArray(splitted);
      return 1;
    }
  }
  destroyStringArray(splitted);
  return 0;
}
```