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

```asm
<sdt_1_check>:
  endbr64
  push   %r13
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  sub    $0x10,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x8(%rsp)
  xor    %eax,%eax
  call   <createStringArray@plt>
  lea    0x4(%rsp),%rdx
  mov    %r12,%rdi
  movl   $0x0,0x4(%rsp)
  mov    %rax,%rsi
  mov    %rax,%rbp
  call   <splitString@plt>
  mov    0x4(%rsp),%eax
  cmp    $0x3,%eax
  je     L386
L473:
  cmp    $0x4,%eax
  je     L45
L271:
  mov    %rbp,%rdi
  call   <destroyStringArray@plt>
  xor    %eax,%eax
L231:
  mov    0x8(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L415
  add    $0x10,%rsp
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
  nopw   0x0(%rax,%rax,1)
L45:
  lea    D211(%rip),%r12
  mov    0x0(%rbp),%rdi
  mov    %r12,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L203
  mov    0x8(%rbp),%rdi
  lea    D43(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L203
  mov    0x10(%rbp),%rdi
  lea    D223(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L82
  cs nopw 0x0(%rax,%rax,1)
L203:
  lea    D142(%rip),%r13
  mov    0x0(%rbp),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L305
  mov    0x8(%rbp),%rdi
  lea    D38(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L305
  mov    0x10(%rbp),%rdi
  lea    D223(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L315
  cs nopw 0x0(%rax,%rax,1)
L305:
  mov    0x0(%rbp),%rdi
  mov    %r12,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L358
  mov    0x8(%rbp),%rdi
  lea    D43(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L358
  mov    0x10(%rbp),%rdi
  lea    D223(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L28
  nop
L358:
  mov    0x0(%rbp),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L271
  mov    0x8(%rbp),%rdi
  lea    D38(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L271
  mov    0x10(%rbp),%rdi
  lea    D223(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L271
  mov    0x18(%rbp),%rdi
  lea    D175(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L271
L36:
  mov    %rbp,%rdi
  call   <destroyStringArray@plt>
  mov    $0x1,%eax
  jmp    L231
  nopw   0x0(%rax,%rax,1)
L386:
  lea    D211(%rip),%r12
  mov    0x0(%rbp),%rdi
  mov    %r12,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L430
L342:
  mov    0x0(%rbp),%rdi
  mov    %r12,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L230
  mov    0x8(%rbp),%rdi
  lea    D43(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L19
L230:
  lea    D142(%rip),%r13
  mov    0x0(%rbp),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L467
  mov    0x8(%rbp),%rdi
  lea    D38(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L56
L467:
  mov    0x0(%rbp),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L117
  mov    0x8(%rbp),%rdi
  lea    D38(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L276
L117:
  mov    0x0(%rbp),%rdi
  mov    %r12,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L199
  mov    0x8(%rbp),%rdi
  lea    D43(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L61
L199:
  mov    0x0(%rbp),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L334
L350:
  mov    0x4(%rsp),%eax
  jmp    L473
  nopl   (%rax)
L430:
  mov    0x8(%rbp),%rdi
  lea    D43(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L342
  mov    0x10(%rbp),%rdi
  lea    D223(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L342
  jmp    L36
  nopw   0x0(%rax,%rax,1)
L334:
  mov    0x8(%rbp),%rdi
  lea    D38(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L350
  mov    0x10(%rbp),%rdi
  lea    D276(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L350
  jmp    L36
  nop
L82:
  mov    0x18(%rbp),%rdi
  lea    D274(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L203
  jmp    L36
  xchg   %ax,%ax
L315:
  mov    0x18(%rbp),%rdi
  lea    D274(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L305
  jmp    L36
  xchg   %ax,%ax
L28:
  mov    0x18(%rbp),%rdi
  lea    D175(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L358
  jmp    L36
  xchg   %ax,%ax
L19:
  mov    0x10(%rbp),%rdi
  lea    D84(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L230
  jmp    L36
  xchg   %ax,%ax
L56:
  mov    0x10(%rbp),%rdi
  lea    D223(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L467
  jmp    L36
  xchg   %ax,%ax
L276:
  mov    0x10(%rbp),%rdi
  lea    D84(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L117
  jmp    L36
  xchg   %ax,%ax
L61:
  mov    0x10(%rbp),%rdi
  lea    D276(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L199
  jmp    L36
L415:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D211
data_type: string
name: extract_symbolic_data
arguments: data_tag: D43
data_type: string
name: extract_symbolic_data
arguments: data_tag: D223
data_type: string
name: extract_symbolic_data
arguments: data_tag: D142
data_type: string
name: extract_symbolic_data
arguments: data_tag: D38
data_type: string
name: extract_symbolic_data
arguments: data_tag: D175
data_type: string
name: extract_symbolic_data
arguments: data_tag: D276
data_type: string
name: extract_symbolic_data
arguments: data_tag: D274
data_type: string
name: extract_symbolic_data
arguments: data_tag: D84
data_type: string

tool: D211: str

tool: D43: r0

tool: D223: [r3]

tool: D142: ldr

tool: D38: r1

tool: D175: #0x0

tool: D276: [r3, #0x0]

tool: D274: #0

tool: D84: [r3, #0]

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