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

```asm
<main>:
  endbr64
  push   %rbp
  mov    $0x7,%edx
  mov    $0x9,%esi
  sub    $0x120,%rsp
  movdqa D100(%rip),%xmm1
  movdqa D69(%rip),%xmm0
  mov    %fs:0x28,%rax
  mov    %rax,0x118(%rsp)
  xor    %eax,%eax
  mov    %rsp,%rbp
  movl   $0xb,0x20(%rsp)
  mov    %rbp,%rdi
  movaps %xmm1,(%rsp)
  movaps %xmm0,0x10(%rsp)
  call   <linear_search_for_num@plt>
  xor    %edi,%edi
  cmp    $0x4,%eax
  sete   %dil
  call   <assert@plt>
  mov    $0x7,%edx
  mov    $0x9,%esi
  mov    %rbp,%rdi
  call   <binary_search_for_num@plt>
  xor    %edi,%edi
  lea    0x30(%rsp),%rbp
  cmp    $0x4,%eax
  sete   %dil
  call   <assert@plt>
  movdqa D100(%rip),%xmm2
  mov    $0xb,%edx
  mov    %rbp,%rdi
  movdqa D69(%rip),%xmm0
  mov    $0x9,%esi
  movl   $0xb,0x50(%rsp)
  movaps %xmm2,0x30(%rsp)
  movaps %xmm0,0x40(%rsp)
  call   <linear_search_for_num@plt>
  xor    %edi,%edi
  cmp    $0x8,%eax
  sete   %dil
  call   <assert@plt>
  mov    $0xb,%edx
  mov    $0x9,%esi
  mov    %rbp,%rdi
  call   <binary_search_for_num@plt>
  xor    %edi,%edi
  lea    0x60(%rsp),%rbp
  cmp    $0x8,%eax
  sete   %dil
  call   <assert@plt>
  movdqa D100(%rip),%xmm3
  mov    $0x1,%edx
  mov    %rbp,%rdi
  movdqa D94(%rip),%xmm0
  mov    $0x9,%esi
  movl   $0x16,0x80(%rsp)
  movaps %xmm3,0x60(%rsp)
  movaps %xmm0,0x70(%rsp)
  call   <linear_search_for_num@plt>
  xor    %edi,%edi
  test   %eax,%eax
  sete   %dil
  call   <assert@plt>
  mov    $0x1,%edx
  mov    $0x9,%esi
  mov    %rbp,%rdi
  call   <binary_search_for_num@plt>
  xor    %edi,%edi
  lea    0x90(%rsp),%rbp
  test   %eax,%eax
  sete   %dil
  call   <assert@plt>
  movdqa D100(%rip),%xmm4
  mov    $0x22,%edx
  mov    %rbp,%rdi
  movdqa D75(%rip),%xmm0
  mov    $0x9,%esi
  movl   $0x21,0xb0(%rsp)
  movaps %xmm4,0x90(%rsp)
  movaps %xmm0,0xa0(%rsp)
  call   <linear_search_for_num@plt>
  xor    %edi,%edi
  cmp    $0xffffffff,%eax
  sete   %dil
  call   <assert@plt>
  mov    $0x22,%edx
  mov    $0x9,%esi
  mov    %rbp,%rdi
  call   <binary_search_for_num@plt>
  xor    %edi,%edi
  lea    0xc0(%rsp),%rbp
  cmp    $0xffffffff,%eax
  sete   %dil
  call   <assert@plt>
  xor    %edx,%edx
  mov    $0x9,%esi
  mov    %rbp,%rdi
  movdqa D93(%rip),%xmm0
  movl   $0x2c,0xe0(%rsp)
  movaps %xmm0,0xc0(%rsp)
  movdqa D59(%rip),%xmm0
  movaps %xmm0,0xd0(%rsp)
  call   <linear_search_for_num@plt>
  xor    %edi,%edi
  cmp    $0xffffffff,%eax
  sete   %dil
  call   <assert@plt>
  xor    %edx,%edx
  mov    $0x9,%esi
  mov    %rbp,%rdi
  call   <binary_search_for_num@plt>
  xor    %edi,%edi
  lea    0xf0(%rsp),%rbp
  cmp    $0xffffffff,%eax
  sete   %dil
  call   <assert@plt>
  movdqa D40(%rip),%xmm0
  mov    $0x2,%edx
  mov    %rbp,%rdi
  movl   $0x37,0x110(%rsp)
  mov    $0x9,%esi
  movaps %xmm0,0xf0(%rsp)
  movdqa D28(%rip),%xmm0
  movaps %xmm0,0x100(%rsp)
  call   <linear_search_for_num@plt>
  xor    %edi,%edi
  cmp    $0xffffffff,%eax
  sete   %dil
  call   <assert@plt>
  mov    %rbp,%rdi
  mov    $0x2,%edx
  mov    $0x9,%esi
  call   <binary_search_for_num@plt>
  xor    %edi,%edi
  cmp    $0xffffffff,%eax
  sete   %dil
  call   <assert@plt>
  mov    0x118(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L2
  add    $0x120,%rsp
  xor    %eax,%eax
  pop    %rbp
  ret
L2:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: tag: D100
type_infered: byte[16]
name: unpack_data
arguments: tag: D69
type_infered: byte[16]
name: unpack_data
arguments: tag: D94
type_infered: byte[16]
name: unpack_data
arguments: tag: D75
type_infered: byte[16]
name: unpack_data
arguments: tag: D93
type_infered: byte[16]
name: unpack_data
arguments: tag: D59
type_infered: byte[16]
name: unpack_data
arguments: tag: D40
type_infered: byte[16]
name: unpack_data
arguments: tag: D28
type_infered: byte[16]

tool: {"D100": [0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x06,0x00,0x00,0x00]}

tool: {"D69": [0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x0a,0x00,0x00,0x00]}

tool: {"D94": [0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x14,0x00,0x00,0x00]}

tool: {"D75": [0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x1e,0x00,0x00,0x00]}

tool: {"D93": [0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00]}

tool: {"D59": [0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x28,0x00,0x00,0x00]}

tool: {"D40": [0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x06,0x00,0x00,0x00]}

tool: {"D28": [0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x32,0x00,0x00,0x00]}

assistant: ```c
int main() {
  int array0[] = {1, 2, 3, 6, 7, 8, 9, 10, 11};
  int len0 = sizeof(array0) / sizeof(int);
  int num0 = 7;
  int exp_index0 = 4;
  assert(exp_index0 == linear_search_for_num(array0, len0, num0));
  assert(exp_index0 == binary_search_for_num(array0, len0, num0));
  int array1[] = {1, 2, 3, 6, 7, 8, 9, 10, 11};
  int len1 = sizeof(array1) / sizeof(int);
  int num1 = 11;
  int exp_index1 = 8;
  assert(exp_index1 == linear_search_for_num(array1, len1, num1));
  assert(exp_index1 == binary_search_for_num(array1, len1, num1));
  int array2[] = {1, 2, 3, 6, 7, 8, 9, 20, 22};
  int len2 = sizeof(array2) / sizeof(int);
  int num2 = 1;
  int exp_index2 = 0;
  assert(exp_index2 == linear_search_for_num(array2, len2, num2));
  assert(exp_index2 == binary_search_for_num(array2, len2, num2));
  int array3[] = {1, 2, 3, 6, 7, 8, 9, 30, 33};
  int len3 = sizeof(array3) / sizeof(int);
  int num3 = array3[len3 - 1] + 1;
  int exp_index3 = -1;
  assert(exp_index3 == linear_search_for_num(array3, len3, num3));
  assert(exp_index3 == binary_search_for_num(array3, len3, num3));
  int array4[] = {1, 2, 4, 6, 7, 8, 9, 40, 44};
  int len4 = sizeof(array4) / sizeof(int);
  int num4 = array4[0] - 1;
  int exp_index4 = -1;
  assert(exp_index4 == linear_search_for_num(array4, len4, num4));
  assert(exp_index4 == binary_search_for_num(array4, len4, num4));
  int array5[] = {1, 3, 5, 6, 7, 8, 9, 50, 55};
  int len5 = sizeof(array5) / sizeof(int);
  int num5 = array5[0] + 1;
  int exp_index5 = -1;
  assert(exp_index5 == linear_search_for_num(array5, len5, num5));
  assert(exp_index5 == binary_search_for_num(array5, len5, num5));
  return (0);
}
```