user: 请将以下的汇编代码转换成C语言代码:

```asm
<branch_2_check>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x18,%rsp
  mov    %rdi,%rbp
  mov    %fs:0x28,%rax
  mov    %rax,0x8(%rsp)
  xor    %eax,%eax
  call   <createStringArray@plt>
  mov    %rax,%rbx
  movl   $0x0,0x4(%rsp)
  lea    0x4(%rsp),%rdx
  mov    %rax,%rsi
  mov    %rbp,%rdi
  call   <splitString@plt>
  cmpl   $0x3,0x4(%rsp)
  je     L77
L131:
  cmpl   $0x4,0x4(%rsp)
  je     L72
L94:
  mov    (%rbx),%rdi
  call   <isLabel@plt>
  test   %rax,%rax
  jne    L139
  cmpl   $0x2,0x4(%rsp)
  je     L184
L185:
  mov    %rbx,%rdi
  call   <destroyStringArray@plt>
  mov    $0x0,%eax
L191:
  mov    0x8(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L126
  add    $0x18,%rsp
  pop    %rbx
  pop    %rbp
  ret
L77:
  lea    D22(%rip),%rsi
  mov    (%rbx),%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L131
  mov    0x8(%rbx),%rdi
  lea    D49(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L131
  mov    0x10(%rbx),%rdi
  lea    D80(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L131
  mov    %rbx,%rdi
  call   <destroyStringArray@plt>
  mov    $0x1,%eax
  jmp    L191
L72:
  lea    D69(%rip),%rsi
  mov    (%rbx),%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L94
  mov    0x8(%rbx),%rdi
  lea    D49(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L94
  mov    0x10(%rbx),%rdi
  lea    D49(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L94
  mov    0x18(%rbx),%rdi
  lea    D52(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L94
  mov    %rbx,%rdi
  call   <destroyStringArray@plt>
  mov    $0x1,%eax
  jmp    L191
L139:
  mov    %rbx,%rdi
  call   <destroyStringArray@plt>
  mov    $0x1,%eax
  jmp    L191
L184:
  lea    D95(%rip),%rsi
  mov    (%rbx),%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L166
  lea    D83(%rip),%rsi
  mov    (%rbx),%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L6
L166:
  mov    %rbx,%rdi
  call   <destroyStringArray@plt>
  mov    $0x1,%eax
  jmp    L191
L6:
  lea    D94(%rip),%rsi
  mov    (%rbx),%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L185
  jmp    L166
L126:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: data_label: D22
datatype: string
name: unpack_data
arguments: data_label: D49
datatype: string
name: unpack_data
arguments: data_label: D80
datatype: string
name: unpack_data
arguments: data_label: D69
datatype: string
name: unpack_data
arguments: data_label: D52
datatype: string
name: unpack_data
arguments: data_label: D95
datatype: string
name: unpack_data
arguments: data_label: D83
datatype: string
name: unpack_data
arguments: data_label: D94
datatype: string

tool: D22: cmp

tool: D49: r0

tool: D80: #0

tool: D69: sub

tool: D52: #1

tool: D95: ble

tool: D83: bgt

tool: D94: b

assistant: ```c
int branch_2_check(char *line) {
  char **splitted = createStringArray();
  int n = 0;
  splitString(line, splitted, &n);
  if (n == 3) {
    if (strcmp(splitted[0], "cmp") == 0 && strcmp(splitted[1], "r0") == 0 && strcmp(splitted[2], "#0") == 0) {
      destroyStringArray(splitted);
      return 1;
    }
  }
  if (n == 4) {
    if (strcmp(splitted[0], "sub") == 0 && strcmp(splitted[1], "r0") == 0 && strcmp(splitted[2], "r0") == 0 && strcmp(splitted[3], "#1") == 0) {
      destroyStringArray(splitted);
      return 1;
    }
  }
  if (isLabel(splitted[0])) {
    destroyStringArray(splitted);
    return 1;
  }
  if (n == 2) {
    if (strcmp(splitted[0], "ble") == 0 || strcmp(splitted[0], "bgt") == 0 || strcmp(splitted[0], "b") == 0) {
      destroyStringArray(splitted);
      return 1;
    }
  }
  destroyStringArray(splitted);
  return 0;
}
```