user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<btp_frame_parseadd_operator>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x18,%rsp
  mov    %rdi,%rbx
  mov    %rsi,%rbp
  mov    %fs:0x28,%rax
  mov    %rax,0x8(%rsp)
  xor    %eax,%eax
  mov    (%rdi),%rax
  mov    %rax,(%rsp)
  mov    %rsp,%rdi
  lea    D762(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jne    L324
L712:
  mov    0x8(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L30
  add    $0x18,%rsp
  pop    %rbx
  pop    %rbp
  ret
L324:
  mov    %rsp,%rdi
  lea    D1186(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L619
  mov    %rsp,%rdi
  lea    D453(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L762
  mov    %rsp,%rdi
  lea    D364(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L144
  mov    %rsp,%rdi
  lea    D1161(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L379
  mov    %rsp,%rdi
  lea    D348(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L428
  mov    %rsp,%rdi
  lea    D1075(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L65
  mov    %rsp,%rdi
  lea    D898(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L708
  mov    %rsp,%rdi
  lea    D845(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L340
  mov    %rsp,%rdi
  lea    D395(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L318
  mov    %rsp,%rdi
  lea    D1117(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L825
  mov    %rsp,%rdi
  lea    D876(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L267
  mov    %rsp,%rdi
  lea    D292(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L675
  mov    %rsp,%rdi
  lea    D1056(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L710
  mov    %rsp,%rdi
  lea    D780(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L345
  mov    %rsp,%rdi
  lea    D772(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L441
  mov    %rsp,%rdi
  lea    D218(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L761
  mov    %rsp,%rdi
  lea    D313(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L531
  mov    %rsp,%rdi
  lea    D356(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L860
  mov    %rsp,%rdi
  lea    D712(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L286
  mov    %rsp,%rdi
  lea    D1181(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L280
  mov    %rsp,%rdi
  lea    D1256(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L34
  mov    %rsp,%rdi
  lea    D1096(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L212
  mov    %rsp,%rdi
  lea    D148(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L327
  mov    %rsp,%rdi
  lea    D1079(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L827
  mov    %rsp,%rdi
  lea    D876(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L552
  mov    %rsp,%rdi
  lea    D776(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L72
  mov    %rsp,%rdi
  lea    D1034(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L432
  mov    %rsp,%rdi
  lea    D667(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L400
  mov    %rsp,%rdi
  lea    D216(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L228
  mov    %rsp,%rdi
  lea    D502(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L739
  mov    %rsp,%rdi
  lea    D601(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L489
  mov    %rsp,%rdi
  lea    D486(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L556
  mov    %rsp,%rdi
  lea    D507(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L773
  mov    %rsp,%rdi
  lea    D493(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jle    L9
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D493(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L619:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D1186(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L762:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D453(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L144:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D364(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L379:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D1161(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L428:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D348(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L65:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D1075(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L708:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D898(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L340:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D845(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L318:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D395(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L825:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D1117(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L267:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D876(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L675:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D292(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L710:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D1056(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L345:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D780(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L441:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D772(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L761:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D218(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L531:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D313(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L860:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D356(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L286:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D712(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L280:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D1181(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L34:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D1256(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L212:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D1096(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L327:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D148(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L827:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D1079(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L552:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D876(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L72:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D776(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L432:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D1034(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L400:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D667(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L228:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D216(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L739:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D502(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L489:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D601(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L556:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D486(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L773:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D507(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L9:
  mov    %rsp,%rdi
  lea    D1208(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L578
  mov    %rsp,%rdi
  lea    D332(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jle    L784
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D332(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L578:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D1208(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L784:
  mov    %rsp,%rdi
  lea    D1114(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L678
  mov    %rsp,%rdi
  lea    D354(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jg     L188
  mov    %rsp,%rdi
  lea    D985(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jle    L651
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D985(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L678:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D1114(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L188:
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D354(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L651:
  mov    %rsp,%rdi
  lea    D936(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jle    L468
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D936(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L468:
  mov    %rsp,%rdi
  lea    D38(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jle    L753
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D38(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L753:
  mov    %rsp,%rdi
  lea    D352(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  test   %eax,%eax
  jle    L805
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  lea    D352(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L805:
  mov    %rsp,%rdi
  lea    D185(%rip),%rsi
  mov    $0x0,%eax
  call   <btp_skip_string@plt>
  mov    %eax,%edx
  mov    $0x0,%eax
  test   %edx,%edx
  jle    L712
  lea    D762(%rip),%rsi
  mov    %rbp,%rdi
  call   <btp_strbuf_append_str@plt>
  lea    D185(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <btp_strbuf_append_str@plt>
  mov    (%rsp),%rdx
  mov    %edx,%eax
  sub    (%rbx),%eax
  mov    %rdx,(%rbx)
  jmp    L712
L30:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: tag: D762
type_infered: string
name: parse_data
arguments: tag: D1186
type_infered: string
name: parse_data
arguments: tag: D453
type_infered: string
name: parse_data
arguments: tag: D364
type_infered: string
name: parse_data
arguments: tag: D1161
type_infered: string
name: parse_data
arguments: tag: D348
type_infered: string
name: parse_data
arguments: tag: D1075
type_infered: string
name: parse_data
arguments: tag: D898
type_infered: string
name: parse_data
arguments: tag: D845
type_infered: string
name: parse_data
arguments: tag: D395
type_infered: string
name: parse_data
arguments: tag: D1117
type_infered: string
name: parse_data
arguments: tag: D876
type_infered: string
name: parse_data
arguments: tag: D292
type_infered: string
name: parse_data
arguments: tag: D1056
type_infered: string
name: parse_data
arguments: tag: D780
type_infered: string
name: parse_data
arguments: tag: D772
type_infered: string
name: parse_data
arguments: tag: D218
type_infered: string
name: parse_data
arguments: tag: D313
type_infered: string
name: parse_data
arguments: tag: D356
type_infered: string
name: parse_data
arguments: tag: D712
type_infered: string
name: parse_data
arguments: tag: D1181
type_infered: string
name: parse_data
arguments: tag: D1256
type_infered: string
name: parse_data
arguments: tag: D1096
type_infered: string
name: parse_data
arguments: tag: D148
type_infered: string
name: parse_data
arguments: tag: D1079
type_infered: string
name: parse_data
arguments: tag: D776
type_infered: string
name: parse_data
arguments: tag: D1034
type_infered: string
name: parse_data
arguments: tag: D667
type_infered: string
name: parse_data
arguments: tag: D216
type_infered: string
name: parse_data
arguments: tag: D502
type_infered: string
name: parse_data
arguments: tag: D601
type_infered: string
name: parse_data
arguments: tag: D486
type_infered: string
name: parse_data
arguments: tag: D507
type_infered: string
name: parse_data
arguments: tag: D493
type_infered: string
name: parse_data
arguments: tag: D1208
type_infered: string
name: parse_data
arguments: tag: D332
type_infered: string
name: parse_data
arguments: tag: D1114
type_infered: string
name: parse_data
arguments: tag: D354
type_infered: string
name: parse_data
arguments: tag: D985
type_infered: string
name: parse_data
arguments: tag: D936
type_infered: string
name: parse_data
arguments: tag: D38
type_infered: string
name: parse_data
arguments: tag: D352
type_infered: string
name: parse_data
arguments: tag: D185
type_infered: string

tool: D762: operator

tool: D1186: >>=

tool: D453: >>

tool: D364: >=

tool: D1161: >

tool: D348: <<=

tool: D1075: <<

tool: D898: <=

tool: D845: <

tool: D395: ->*

tool: D1117: ->

tool: D876: -

tool: D292: ==

tool: D1056: =

tool: D780: &&

tool: D772: &=

tool: D218: &

tool: D313: ||

tool: D356: |=

tool: D712: |

tool: D1181: ++

tool: D1256: +=

tool: D1096: +

tool: D148: --

tool: D1079: -=

tool: D776: /=

tool: D1034: /

tool: D667: *=

tool: D216: *

tool: D502: %=

tool: D601: %

tool: D486: !=

tool: D507: !

tool: D493: ~

tool: D1208: ()

tool: 

tool: D1114: ,

tool: D354: ^=

tool: D985: ^

tool: D936:  new[]

tool: D38:  new

tool: D352:  delete[]

tool: D185:  delete

assistant: ```c
int btp_frame_parseadd_operator(const char **input, struct btp_strbuf *target) {
  const char *local_input = *input;
  if (0 == btp_skip_string(&local_input, "operator"))
    return 0;
  if (0 < btp_skip_string(&local_input, ">>=")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, ">>=");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, ">>")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, ">>");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, ">=")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, ">=");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, ">")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, ">");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, "<<=")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "<<=");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "<<")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "<<");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "<=")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "<=");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "<")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "<");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, "->*")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "->*");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "->")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "->");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "-")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "-");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, "==")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "==");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "=")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "=");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, "&&")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "&&");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "&=")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "&=");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "&")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "&");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, "||")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "||");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "|=")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "|=");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "|")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "|");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, "++")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "++");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "+=")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "+=");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "+")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "+");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, "--")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "--");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "-=")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "-=");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "-")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "-");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, "/=")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "/=");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "/")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "/");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, "*=")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "*=");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "*")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "*");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, "%=")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "%=");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "%")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "%");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, "!=")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "!=");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "!")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "!");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, "~")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "~");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, "()")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "()");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, "[]")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "[]");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, ",")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, ",");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, "^=")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "^=");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, "^")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, "^");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, " new[]")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, " new[]");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, " new")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, " new");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  if (0 < btp_skip_string(&local_input, " delete[]")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, " delete[]");
    int length = local_input - *input;
    *input = local_input;
    return length;
  }
  if (0 < btp_skip_string(&local_input, " delete")) {
    btp_strbuf_append_str(target, "operator");
    btp_strbuf_append_str(target, " delete");
    int length = local_input - *input;
    *input = local_input;
    return length;
  };
  return 0;
}
```