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

```asm
<test_primitive_exprs>:
  endbr64
  sub    $0x8,%rsp
  lea    D59(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  jne    L225
L447:
  lea    D36(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  jne    L471
L127:
  lea    D154(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  jne    L156
L176:
  lea    D212(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  jne    L134
L453:
  lea    D174(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  jne    L124
L168:
  lea    D34(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L475
L419:
  lea    D115(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L362
L277:
  lea    D5(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L389
L391:
  lea    D194(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L335
L440:
  lea    D85(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L114
L87:
  lea    D23(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L135
L13:
  lea    D70(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L164
L430:
  lea    D120(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L207
L286:
  lea    D35(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L242
L64:
  lea    D123(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L370
L490:
  lea    D118(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L136
L324:
  lea    D52(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L66
L415:
  lea    D38(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L219
L235:
  lea    D117(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L99
L119:
  lea    D161(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L374
L387:
  lea    D102(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L368
L330:
  lea    D90(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L153
L220:
  lea    D157(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L159
L422:
  lea    D11(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L4
L154:
  lea    D235(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L118
L149:
  lea    D196(%rip),%rdi
  call   <run@plt>
  test   %rax,%rax
  je     L307
  add    $0x8,%rsp
  ret
  nop
L225:
  mov    $0x91,%edi
  call   <fail_test@plt>
  jmp    L447
  nop
L307:
  mov    $0xaa,%edi
  add    $0x8,%rsp
  jmp    1070 <fail_test@plt>
  xchg   %ax,%ax
L118:
  mov    $0xa9,%edi
  call   <fail_test@plt>
  jmp    L149
  nopl   0x0(%rax)
L4:
  mov    $0xa8,%edi
  call   <fail_test@plt>
  jmp    L154
  nopl   0x0(%rax)
L159:
  mov    $0xa7,%edi
  call   <fail_test@plt>
  jmp    L422
  nop
L153:
  mov    $0xa6,%edi
  call   <fail_test@plt>
  jmp    L220
  nop
L368:
  mov    $0xa5,%edi
  call   <fail_test@plt>
  jmp    L330
  nop
L374:
  mov    $0xa4,%edi
  call   <fail_test@plt>
  jmp    L387
  nop
L99:
  mov    $0xa3,%edi
  call   <fail_test@plt>
  jmp    L119
  nop
L219:
  mov    $0xa2,%edi
  call   <fail_test@plt>
  jmp    L235
  nop
L66:
  mov    $0xa1,%edi
  call   <fail_test@plt>
  jmp    L415
  nop
L136:
  mov    $0xa0,%edi
  call   <fail_test@plt>
  jmp    L324
  nop
L370:
  mov    $0x9f,%edi
  call   <fail_test@plt>
  jmp    L490
  nop
L242:
  mov    $0x9e,%edi
  call   <fail_test@plt>
  jmp    L64
  nop
L207:
  mov    $0x9d,%edi
  call   <fail_test@plt>
  jmp    L286
  nop
L164:
  mov    $0x9c,%edi
  call   <fail_test@plt>
  jmp    L430
  nop
L135:
  mov    $0x9b,%edi
  call   <fail_test@plt>
  jmp    L13
  nop
L114:
  mov    $0x9a,%edi
  call   <fail_test@plt>
  jmp    L87
  nop
L335:
  mov    $0x99,%edi
  call   <fail_test@plt>
  jmp    L440
  nop
L389:
  mov    $0x98,%edi
  call   <fail_test@plt>
  jmp    L391
  nop
L362:
  mov    $0x97,%edi
  call   <fail_test@plt>
  jmp    L277
  nop
L475:
  mov    $0x96,%edi
  call   <fail_test@plt>
  jmp    L419
  nop
L124:
  mov    $0x95,%edi
  call   <fail_test@plt>
  jmp    L168
  nop
L134:
  mov    $0x94,%edi
  call   <fail_test@plt>
  jmp    L453
  nop
L156:
  mov    $0x93,%edi
  call   <fail_test@plt>
  jmp    L176
  nop
L471:
  mov    $0x92,%edi
  call   <fail_test@plt>
  jmp    L127
```

tool_calls: name: parse_data
arguments: data_label: D59
data_type: string
name: parse_data
arguments: data_label: D36
data_type: string
name: parse_data
arguments: data_label: D154
data_type: string
name: parse_data
arguments: data_label: D212
data_type: string
name: parse_data
arguments: data_label: D174
data_type: string
name: parse_data
arguments: data_label: D34
data_type: string
name: parse_data
arguments: data_label: D115
data_type: string
name: parse_data
arguments: data_label: D5
data_type: string
name: parse_data
arguments: data_label: D194
data_type: string
name: parse_data
arguments: data_label: D85
data_type: string
name: parse_data
arguments: data_label: D23
data_type: string
name: parse_data
arguments: data_label: D70
data_type: string
name: parse_data
arguments: data_label: D120
data_type: string
name: parse_data
arguments: data_label: D35
data_type: string
name: parse_data
arguments: data_label: D123
data_type: string
name: parse_data
arguments: data_label: D118
data_type: string
name: parse_data
arguments: data_label: D52
data_type: string
name: parse_data
arguments: data_label: D38
data_type: string
name: parse_data
arguments: data_label: D117
data_type: string
name: parse_data
arguments: data_label: D161
data_type: string
name: parse_data
arguments: data_label: D102
data_type: string
name: parse_data
arguments: data_label: D90
data_type: string
name: parse_data
arguments: data_label: D157
data_type: string
name: parse_data
arguments: data_label: D11
data_type: string
name: parse_data
arguments: data_label: D235
data_type: string
name: parse_data
arguments: data_label: D196
data_type: string

tool: D59: test/progs/primitive_expr_basic.b

tool: D36: test/progs/primitive_expr_ops.b

tool: D154: test/progs/primitive_expr_conv.b

tool: D212: test/progs/primitive_expr_time.b

tool: D174: test/progs/primitive_expr_str_index.b

tool: D34: test/progs/primitive_expr_not_string_err.b

tool: D115: test/progs/primitive_expr_not_real_err.b

tool: D5: test/progs/primitive_expr_eq_err.b

tool: D194: test/progs/primitive_expr_neq_err.b

tool: D85: test/progs/primitive_expr_and_err.b

tool: D23: test/progs/primitive_expr_or_err.b

tool: D70: test/progs/primitive_expr_gt_err.b

tool: D120: test/progs/primitive_expr_lt_err.b

tool: D35: test/progs/primitive_expr_sum_err.b

tool: D123: test/progs/primitive_expr_sub_err.b

tool: D118: test/progs/primitive_expr_mul_err.b

tool: D52: test/progs/primitive_expr_div_err.b

tool: D38: test/progs/primitive_expr_unknown_func_err.b

tool: D117: test/progs/primitive_expr_conv_str_to_int_err.b

tool: D161: test/progs/primitive_expr_conv_str_to_real_err.b

tool: D102: test/progs/primitive_expr_conv_str_to_long_err.b

tool: D90: test/progs/primitive_expr_conv_param_err.b

tool: D157: test/progs/primitive_expr_time_int_err.b

tool: D11: test/progs/primitive_expr_str_index_param_missing_err.b

tool: D235: test/progs/primitive_expr_str_index_param_one_type_err.b

tool: D196: test/progs/primitive_expr_str_index_param_two_type_err.b

assistant: ```c
void test_primitive_exprs() {
  do {
    if (run("test/progs/"
            "primitive_expr_basic.b"))
      fail_test(145);
    ;
  } while (0);
  do {
    if (run("test/progs/"
            "primitive_expr_ops.b"))
      fail_test(146);
    ;
  } while (0);
  do {
    if (run("test/progs/"
            "primitive_expr_conv.b"))
      fail_test(147);
    ;
  } while (0);
  do {
    if (run("test/progs/"
            "primitive_expr_time.b"))
      fail_test(148);
    ;
  } while (0);
  do {
    if (run("test/progs/"
            "primitive_expr_str_index.b"))
      fail_test(149);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_not_string_err.b"))
      fail_test(150);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_not_real_err.b"))
      fail_test(151);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_eq_err.b"))
      fail_test(152);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_neq_err.b"))
      fail_test(153);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_and_err.b"))
      fail_test(154);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_or_err.b"))
      fail_test(155);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_gt_err.b"))
      fail_test(156);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_lt_err.b"))
      fail_test(157);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_sum_err.b"))
      fail_test(158);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_sub_err.b"))
      fail_test(159);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_mul_err.b"))
      fail_test(160);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_div_err.b"))
      fail_test(161);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_unknown_func_err.b"))
      fail_test(162);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_conv_str_to_int_err.b"))
      fail_test(163);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_conv_str_to_real_err.b"))
      fail_test(164);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_conv_str_to_long_err.b"))
      fail_test(165);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_conv_param_err.b"))
      fail_test(166);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_time_int_err.b"))
      fail_test(167);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_str_index_param_missing_err.b"))
      fail_test(168);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_str_index_param_one_type_err.b"))
      fail_test(169);
    ;
  } while (0);
  do {
    if (!run("test/progs/"
             "primitive_expr_str_index_param_two_type_err.b"))
      fail_test(170);
    ;
  } while (0);
}
```