user: 下面的汇编指令对应的C源代码是什么:

```asm
<main>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  sub    $0x1b8,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x11a8(%rsp)
  xor    %eax,%eax
  lea    D240(%rip),%rdi
  call   <getenv@plt>
  mov    %rax,%r12
  lea    D264(%rip),%rdi
  call   <getenv@plt>
  mov    %rax,%rbx
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,%edx
  lea    0xda0(%rsp),%rdi
  mov    %rbx,%rsi
  call   <memcpy@plt>
  lea    D511(%rip),%rdi
  call   <getenv@plt>
  mov    %rax,0x10(%rsp)
  lea    D624(%rip),%rdi
  call   <getenv@plt>
  mov    %rax,0x18(%rsp)
  test   %r12,%r12
  je     L708
  test   %rbx,%rbx
  je     L764
  mov    %r12,%rdi
  call   <strlen@plt>
  cmp    $0x19c,%eax
  ja     L141
  lea    0xda0(%rsp),%rdi
  lea    D765(%rip),%rsi
  call   <strtok@plt>
  mov    %rax,%rbx
  test   %rax,%rax
  jne    L203
L569:
  mov    $0x0,%edi
  call   <exit@plt>
  mov    $0x0,%eax
L183:
  mov    0x11a8(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L135
  add    $0x11b8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L708:
  lea    D361(%rip),%rdi
  call   <puts@plt>
  jmp    L689
L764:
  lea    D1019(%rip),%rdi
  call   <puts@plt>
L689:
  mov    $0xffffffff,%eax
  jmp    L183
L141:
  lea    D289(%rip),%rdi
  call   <puts@plt>
  jmp    L689
L576:
  mov    $0x4,%edx
  lea    D170(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L379
  mov    $0x1,%edx
  lea    D558(%rip),%rsi
  mov    0x10(%rsp),%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L1
  mov    $0x3,%edx
  lea    D967(%rip),%rsi
  mov    0x18(%rsp),%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L324
L1:
  lea    0x1a0(%rsp),%rdi
  lea    D968(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D136(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D117(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
L433:
  lea    0x20(%rsp),%rdx
  lea    0x7a0(%rsp),%rsi
  lea    0x1a0(%rsp),%rdi
  call   <bin2h@plt>
  test   %ebp,%ebp
  jne    L327
L703:
  test   %ebx,%ebx
  jne    L416
L257:
  lea    D765(%rip),%rsi
  mov    $0x0,%edi
  call   <strtok@plt>
  mov    %rax,%rbx
  test   %rax,%rax
  je     L569
L203:
  mov    %rbx,%rsi
  lea    D1173(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    0x1a0(%rsp),%r15
  mov    $0x200,%edx
  mov    $0x0,%esi
  mov    %r15,%rdi
  call   <memset@plt>
  lea    0x3a0(%rsp),%r14
  mov    $0x200,%edx
  mov    $0x0,%esi
  mov    %r14,%rdi
  call   <memset@plt>
  lea    0x7a0(%rsp),%rax
  mov    $0x200,%edx
  mov    $0x0,%esi
  mov    %rax,(%rsp)
  mov    %rax,%rdi
  call   <memset@plt>
  lea    0x9a0(%rsp),%rcx
  mov    $0x200,%edx
  mov    $0x0,%esi
  mov    %rcx,0x8(%rsp)
  mov    %rcx,%rdi
  call   <memset@plt>
  lea    0x20(%rsp),%rdi
  mov    $0x80,%edx
  mov    $0x0,%esi
  call   <memset@plt>
  lea    0xa0(%rsp),%rdi
  mov    $0x80,%edx
  mov    $0x0,%esi
  call   <memset@plt>
  lea    0x5a0(%rsp),%r13
  mov    $0x200,%edx
  mov    $0x0,%esi
  mov    %r13,%rdi
  call   <memset@plt>
  lea    0xba0(%rsp),%rbp
  mov    $0x200,%edx
  mov    $0x0,%esi
  mov    %rbp,%rdi
  call   <memset@plt>
  lea    0x120(%rsp),%rdi
  mov    $0x80,%edx
  mov    $0x0,%esi
  call   <memset@plt>
  mov    %r12,%rsi
  mov    %r15,%rdi
  call   <strcat@plt>
  mov    %r12,%rsi
  mov    %r14,%rdi
  call   <strcat@plt>
  mov    %r12,%rsi
  mov    %r13,%rdi
  call   <strcat@plt>
  mov    %r12,%rsi
  mov    (%rsp),%rdi
  call   <strcat@plt>
  mov    %r12,%rsi
  mov    0x8(%rsp),%rdi
  call   <strcat@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  mov    $0x4,%edx
  lea    D893(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L576
  mov    %r15,%rdi
  lea    D202(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D1349(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D498(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L324:
  lea    0x1a0(%rsp),%rdi
  lea    D189(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D991(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D205(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L379:
  mov    $0x4,%edx
  lea    D668(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L792
  lea    0x1a0(%rsp),%rdi
  lea    D202(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D1349(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D498(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L792:
  mov    $0x4,%edx
  lea    D1102(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L723
  mov    $0x1,%edx
  lea    D558(%rip),%rsi
  mov    0x10(%rsp),%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L289
  mov    $0x3,%edx
  lea    D967(%rip),%rsi
  mov    0x18(%rsp),%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L252
L289:
  lea    0x1a0(%rsp),%rdi
  lea    D968(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D136(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D117(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L252:
  lea    0x1a0(%rsp),%rdi
  lea    D189(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D991(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D205(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L723:
  mov    $0x4,%edx
  lea    D1294(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L360
  mov    $0x1,%edx
  lea    D558(%rip),%rsi
  mov    0x10(%rsp),%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L280
  mov    $0x3,%edx
  lea    D967(%rip),%rsi
  mov    0x18(%rsp),%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L411
L280:
  lea    0x1a0(%rsp),%rdi
  lea    D968(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D136(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D117(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L411:
  lea    0x1a0(%rsp),%rdi
  lea    D189(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D991(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D205(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L360:
  mov    $0x4,%edx
  lea    D567(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L614
  mov    $0x1,%edx
  lea    D558(%rip),%rsi
  mov    0x10(%rsp),%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L401
  mov    $0x3,%edx
  lea    D967(%rip),%rsi
  mov    0x18(%rsp),%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L737
L401:
  lea    0x1a0(%rsp),%rdi
  lea    D968(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D136(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D117(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L737:
  lea    0x1a0(%rsp),%rdi
  lea    D189(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D991(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D205(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L614:
  mov    $0x4,%edx
  lea    D1274(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L524
  mov    $0x1,%edx
  lea    D558(%rip),%rsi
  mov    0x10(%rsp),%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L497
  mov    $0x3,%edx
  lea    D967(%rip),%rsi
  mov    0x18(%rsp),%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L424
L497:
  lea    0x1a0(%rsp),%rdi
  lea    D968(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D136(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D117(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L424:
  lea    0x1a0(%rsp),%rdi
  lea    D189(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D991(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D205(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L524:
  mov    $0x4,%edx
  lea    D224(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L43
  mov    $0x1,%edx
  lea    D558(%rip),%rsi
  mov    0x10(%rsp),%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L329
  mov    $0x3,%edx
  lea    D967(%rip),%rsi
  mov    0x18(%rsp),%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L499
L329:
  lea    0x1a0(%rsp),%rdi
  lea    D968(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D136(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D117(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L499:
  lea    0x1a0(%rsp),%rdi
  lea    D189(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D991(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D205(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L43:
  mov    $0x4,%edx
  lea    D587(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L756
  mov    $0x1,%edx
  lea    D558(%rip),%rsi
  mov    0x10(%rsp),%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L729
  mov    $0x3,%edx
  lea    D967(%rip),%rsi
  mov    0x18(%rsp),%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L112
L729:
  lea    0x1a0(%rsp),%rdi
  lea    D968(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D136(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D117(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L112:
  lea    0x1a0(%rsp),%rdi
  lea    D189(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D991(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D205(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L756:
  mov    $0x4,%edx
  lea    D1308(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L195
  lea    0x1a0(%rsp),%rdi
  lea    D968(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D136(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D117(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L195:
  mov    $0x4,%edx
  lea    D1253(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L306
  lea    0x1a0(%rsp),%rdi
  lea    D202(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D1349(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D498(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L306:
  mov    $0x7,%edx
  lea    D26(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L682
  mov    $0x7,%edx
  lea    D710(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L651
L682:
  lea    0x1a0(%rsp),%rdi
  lea    D998(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D85(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D425(%rip),%rsi
  call   <strcat@plt>
  lea    0x3a0(%rsp),%rdi
  lea    D399(%rip),%rsi
  call   <strcat@plt>
  lea    0x9a0(%rsp),%rdi
  lea    D78(%rip),%rsi
  call   <strcat@plt>
  lea    0xa0(%rsp),%rdi
  lea    D572(%rip),%rsi
  call   <strcat@plt>
  mov    $0x1,%ebx
  mov    $0x0,%ebp
  jmp    L433
L651:
  mov    $0x7,%edx
  lea    D8(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L636
  mov    $0x7,%edx
  lea    D907(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L346
L636:
  lea    0x1a0(%rsp),%rdi
  lea    D569(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D199(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D1228(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L346:
  mov    $0x7,%edx
  lea    D752(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L636
  mov    $0x7,%edx
  lea    D413(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L636
  mov    $0x7,%edx
  lea    D1305(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L495
  mov    $0x7,%edx
  lea    D596(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L543
L495:
  lea    0x1a0(%rsp),%rdi
  lea    D569(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D1338(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D1333(%rip),%rsi
  call   <strcat@plt>
  mov    $0x7,%edx
  lea    D1305(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L273
  lea    0x3a0(%rsp),%rdi
  lea    D1216(%rip),%rsi
  call   <strcat@plt>
  lea    0x9a0(%rsp),%rdi
  lea    D105(%rip),%rsi
  call   <strcat@plt>
  lea    0xa0(%rsp),%rdi
  lea    D268(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L273:
  mov    $0x7,%edx
  lea    D596(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L120
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L120:
  lea    0x3a0(%rsp),%rdi
  lea    D1216(%rip),%rsi
  call   <strcat@plt>
  lea    0x9a0(%rsp),%rdi
  lea    D639(%rip),%rsi
  call   <strcat@plt>
  lea    0xa0(%rsp),%rdi
  lea    D747(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x0,%ebp
  jmp    L433
L543:
  mov    $0x7,%edx
  lea    D391(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L438
  mov    $0x7,%edx
  lea    D724(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L811
L438:
  lea    0x1a0(%rsp),%rdi
  lea    D300(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D509(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D198(%rip),%rsi
  call   <strcat@plt>
  lea    0x5a0(%rsp),%rdi
  lea    D841(%rip),%rsi
  call   <strcat@plt>
  lea    0xba0(%rsp),%rdi
  lea    D1263(%rip),%rsi
  call   <strcat@plt>
  lea    0x120(%rsp),%rdi
  lea    D1112(%rip),%rsi
  call   <strcat@plt>
  lea    0x3a0(%rsp),%rdi
  lea    D166(%rip),%rsi
  call   <strcat@plt>
  lea    0x9a0(%rsp),%rdi
  lea    D1275(%rip),%rsi
  call   <strcat@plt>
  lea    0xa0(%rsp),%rdi
  lea    D97(%rip),%rsi
  call   <strcat@plt>
  mov    $0x1,%ebx
  mov    $0x1,%ebp
  jmp    L433
L811:
  mov    $0x7,%edx
  lea    D919(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L438
  mov    $0x7,%edx
  lea    D477(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L438
  mov    $0x7,%edx
  lea    D908(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L438
  mov    $0x7,%edx
  lea    D249(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L438
  mov    $0x8,%edx
  lea    D494(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L381
  mov    $0x8,%edx
  lea    D700(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  je     L381
  mov    $0x8,%edx
  lea    D1042(%rip),%rsi
  mov    %rbx,%rdi
  call   <strncmp@plt>
  test   %rax,%rax
  jne    L420
L381:
  lea    0x1a0(%rsp),%rdi
  lea    D473(%rip),%rsi
  call   <strcat@plt>
  lea    0x7a0(%rsp),%rdi
  lea    D1390(%rip),%rsi
  call   <strcat@plt>
  lea    0x20(%rsp),%rdi
  lea    D977(%rip),%rsi
  call   <strcat@plt>
  lea    0x5a0(%rsp),%rdi
  lea    D326(%rip),%rsi
  call   <strcat@plt>
  lea    0xba0(%rsp),%rdi
  lea    D448(%rip),%rsi
  call   <strcat@plt>
  lea    0x120(%rsp),%rdi
  lea    D687(%rip),%rsi
  call   <strcat@plt>
  mov    $0x0,%ebx
  mov    $0x1,%ebp
  jmp    L433
L420:
  mov    %rbx,%rsi
  lea    D680(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x0,%ebx
  jmp    L703
L327:
  lea    0x120(%rsp),%rdx
  lea    0xba0(%rsp),%rsi
  lea    0x5a0(%rsp),%rdi
  call   <bin2h@plt>
  jmp    L703
L416:
  lea    0xa0(%rsp),%rdx
  lea    0x9a0(%rsp),%rsi
  lea    0x3a0(%rsp),%rdi
  call   <bin2h@plt>
  jmp    L257
L135:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: read_data
arguments: data_tag: D240
data_type: string
name: read_data
arguments: data_tag: D264
data_type: string
name: read_data
arguments: data_tag: D511
data_type: string
name: read_data
arguments: data_tag: D624
data_type: string
name: read_data
arguments: data_tag: D765
data_type: string
name: read_data
arguments: data_tag: D361
data_type: string
name: read_data
arguments: data_tag: D1019
data_type: string
name: read_data
arguments: data_tag: D289
data_type: string
name: read_data
arguments: data_tag: D170
data_type: string
name: read_data
arguments: data_tag: D558
data_type: string
name: read_data
arguments: data_tag: D967
data_type: string
name: read_data
arguments: data_tag: D968
data_type: string
name: read_data
arguments: data_tag: D136
data_type: string
name: read_data
arguments: data_tag: D117
data_type: string
name: read_data
arguments: data_tag: D1173
data_type: string
name: read_data
arguments: data_tag: D893
data_type: string
name: read_data
arguments: data_tag: D202
data_type: string
name: read_data
arguments: data_tag: D1349
data_type: string
name: read_data
arguments: data_tag: D498
data_type: string
name: read_data
arguments: data_tag: D189
data_type: string
name: read_data
arguments: data_tag: D991
data_type: string
name: read_data
arguments: data_tag: D205
data_type: string
name: read_data
arguments: data_tag: D668
data_type: string
name: read_data
arguments: data_tag: D1102
data_type: string
name: read_data
arguments: data_tag: D1294
data_type: string
name: read_data
arguments: data_tag: D567
data_type: string
name: read_data
arguments: data_tag: D1274
data_type: string
name: read_data
arguments: data_tag: D224
data_type: string
name: read_data
arguments: data_tag: D587
data_type: string
name: read_data
arguments: data_tag: D1308
data_type: string
name: read_data
arguments: data_tag: D1253
data_type: string
name: read_data
arguments: data_tag: D26
data_type: string
name: read_data
arguments: data_tag: D710
data_type: string
name: read_data
arguments: data_tag: D998
data_type: string
name: read_data
arguments: data_tag: D85
data_type: string
name: read_data
arguments: data_tag: D425
data_type: string
name: read_data
arguments: data_tag: D399
data_type: string
name: read_data
arguments: data_tag: D78
data_type: string
name: read_data
arguments: data_tag: D572
data_type: string
name: read_data
arguments: data_tag: D8
data_type: string
name: read_data
arguments: data_tag: D907
data_type: string
name: read_data
arguments: data_tag: D569
data_type: string
name: read_data
arguments: data_tag: D199
data_type: string
name: read_data
arguments: data_tag: D1228
data_type: string
name: read_data
arguments: data_tag: D752
data_type: string
name: read_data
arguments: data_tag: D413
data_type: string
name: read_data
arguments: data_tag: D1305
data_type: string
name: read_data
arguments: data_tag: D596
data_type: string
name: read_data
arguments: data_tag: D1338
data_type: string
name: read_data
arguments: data_tag: D1333
data_type: string
name: read_data
arguments: data_tag: D1216
data_type: string
name: read_data
arguments: data_tag: D105
data_type: string
name: read_data
arguments: data_tag: D268
data_type: string
name: read_data
arguments: data_tag: D639
data_type: string
name: read_data
arguments: data_tag: D747
data_type: string
name: read_data
arguments: data_tag: D391
data_type: string
name: read_data
arguments: data_tag: D724
data_type: string
name: read_data
arguments: data_tag: D300
data_type: string
name: read_data
arguments: data_tag: D509
data_type: string
name: read_data
arguments: data_tag: D198
data_type: string
name: read_data
arguments: data_tag: D841
data_type: string
name: read_data
arguments: data_tag: D1263
data_type: string
name: read_data
arguments: data_tag: D1112
data_type: string
name: read_data
arguments: data_tag: D166
data_type: string
name: read_data
arguments: data_tag: D1275
data_type: string
name: read_data
arguments: data_tag: D97
data_type: string
name: read_data
arguments: data_tag: D919
data_type: string
name: read_data
arguments: data_tag: D477
data_type: string
name: read_data
arguments: data_tag: D908
data_type: string
name: read_data
arguments: data_tag: D249
data_type: string
name: read_data
arguments: data_tag: D494
data_type: string
name: read_data
arguments: data_tag: D700
data_type: string
name: read_data
arguments: data_tag: D1042
data_type: string
name: read_data
arguments: data_tag: D473
data_type: string
name: read_data
arguments: data_tag: D1390
data_type: string
name: read_data
arguments: data_tag: D977
data_type: string
name: read_data
arguments: data_tag: D326
data_type: string
name: read_data
arguments: data_tag: D448
data_type: string
name: read_data
arguments: data_tag: D687
data_type: string
name: read_data
arguments: data_tag: D680
data_type: string

tool: D240: RT28xx_DIR

tool: D264: CHIPSET

tool: D511: HAS_WOW_SUPPORT

tool: D624: RT28xx_MODE

tool: D765:  

tool: D361: Environment value "RT28xx_DIR" not export 

tool: D1019: Environment value "CHIPSET" not export 

tool: D289: Environment value "RT28xx_DIR" is too long!

tool: D170: 2870

tool: D558: y

tool: D967: STA

tool: D968: /mcu/bin/rt2870.bin

tool: D136: /include/mcu/rt2870_firmware.h

tool: D117: RT2870_FirmwareImage

tool: D1173: chipset = %s


tool: D893: 2860

tool: D202: /mcu/bin/rt2860.bin

tool: D1349: /include/mcu/rt2860_firmware.h

tool: D498: RT2860_FirmwareImage

tool: D189: /mcu/bin/rt2870_wow.bin

tool: D991: /include/mcu/rt2870_wow_firmware.h

tool: D205: RT2870_WOW_FirmwareImage

tool: D668: 3090

tool: D1102: 2070

tool: D1294: 3070

tool: D567: 3572

tool: D1274: 3573

tool: D224: 3370

tool: D587: 5370

tool: D1308: 5572

tool: D1253: 5592

tool: D26: mt7601e

tool: D710: mt7601u

tool: D998: /mcu/bin/MT7601_formal_1.6.bin

tool: D85: /include/mcu/mt7601_firmware.h

tool: D425: MT7601_FirmwareImage

tool: D399: /eeprom/MT7601_USB_V0_D-20130416.bin

tool: D78: /include/eeprom/mt7601_e2p.h

tool: D572: MT7601_E2PImage

tool: D8: mt7650e

tool: D907: mt7650u

tool: D569: /mcu/bin/MT7650.bin

tool: D199: /include/mcu/mt7650_firmware.h

tool: D1228: MT7650_FirmwareImage

tool: D752: mt7630e

tool: D413: mt7630u

tool: D1305: mt7610e

tool: D596: mt7610u

tool: D1338: /include/mcu/mt7610_firmware.h

tool: D1333: MT7610_FirmwareImage

tool: D1216: /eeprom/MT7610U_FEM_V1_1.bin

tool: D105: /include/eeprom/mt7610e_e2p.h

tool: D268: MT7610E_E2PImage

tool: D639: /include/eeprom/mt7610u_e2p.h

tool: D747: MT7610U_E2PImage

tool: D391: mt7662e

tool: D724: mt7662u

tool: D300: /mcu/bin/MT7662_E3_v1.9.bin

tool: D509: /include/mcu/mt7662_firmware.h

tool: D198: MT7662_FirmwareImage

tool: D841: /mcu/bin/mt7662_patch_e3_hdr_v0.0.2_P69.bin

tool: D1263: /include/mcu/mt7662_rom_patch.h

tool: D1112: mt7662_rom_patch

tool: D166: /eeprom/MT7612E_EEPROM_layout_20131121_2G5G_ePAeLNA_TXTC_off.bin

tool: D1275: /include/eeprom/mt76x2_e2p.h

tool: D97: MT76x2_E2PImage

tool: D919: mt7632e

tool: D477: mt7632u

tool: D908: mt7612e

tool: D249: mt7612u

tool: D494: mt7662tu

tool: D700: mt7632tu

tool: D1042: mt7612tu

tool: D473: /mcu/bin/mt7662t_firmware_e1.bin

tool: D1390: /include/mcu/mt7662t_firmware.h

tool: D977: MT7662T_FirmwareImage

tool: D326: /mcu/bin/mt7662t_patch_e1_hdr.bin

tool: D448: /include/mcu/mt7662t_rom_patch.h

tool: D687: mt7662t_rom_patch

tool: D680: unknown chipset = %s


assistant: ```c
int main(int argc, char *argv[]) {
  char infname[512], ine2pname[512], in_rom_patch[512];
  char outfname[512], oute2pname[512], out_rom_patch[512];
  char chipsets[1024];
  char fw_name[128], e2p_name[128], rom_patch_name[128];
  char *rt28xxdir;
  char *chipset, *token;
  char *wow, *rt28xx_mode;
  int is_bin2h_fw = 0, is_bin2h_rom_patch = 0, is_bin2h_e2p = 0;
  rt28xxdir = (char *)getenv("RT28xx_DIR");
  chipset = (char *)getenv("CHIPSET");
  memcpy(chipsets, chipset, strlen(chipset));
  wow = (char *)getenv("HAS_WOW_SUPPORT");
  rt28xx_mode = (char *)getenv("RT28xx_MODE");
  if (!rt28xxdir) {
    printf("Environment value \"RT28xx_DIR\" not export \n");
    return -1;
  }
  if (!chipset) {
    printf("Environment value \"CHIPSET\" not export \n");
    return -1;
  }
  if (strlen(rt28xxdir) > (sizeof(infname) - 100)) {
    printf("Environment value \"RT28xx_DIR\" is too long!\n");
    return -1;
  }
  chipset = strtok(chipsets, " ");
  while (chipset != NULL) {
    printf("chipset = %s\n", chipset);
    memset(infname, 0, 512);
    memset(ine2pname, 0, 512);
    memset(outfname, 0, 512);
    memset(oute2pname, 0, 512);
    memset(fw_name, 0, 128);
    memset(e2p_name, 0, 128);
    memset(in_rom_patch, 0, 512);
    memset(out_rom_patch, 0, 512);
    memset(rom_patch_name, 0, 128);
    strcat(infname, rt28xxdir);
    strcat(ine2pname, rt28xxdir);
    strcat(in_rom_patch, rt28xxdir);
    strcat(outfname, rt28xxdir);
    strcat(oute2pname, rt28xxdir);
    strcat(out_rom_patch, rt28xxdir);
    is_bin2h_fw = 0;
    is_bin2h_rom_patch = 0;
    is_bin2h_e2p = 0;
    if (strncmp(chipset, "2860", 4) == 0) {
      strcat(infname, "/mcu/bin/rt2860.bin");
      strcat(outfname, "/include/mcu/rt2860_firmware.h");
      strcat(fw_name, "RT2860_FirmwareImage");
      is_bin2h_fw = 1;
    } else if (strncmp(chipset, "2870", 4) == 0) {
      if ((strncmp(wow, "y", 1) == 0) && (strncmp(rt28xx_mode, "STA", 3) == 0)) {
        strcat(infname, "/mcu/bin/rt2870_wow.bin");
        strcat(outfname, "/include/mcu/rt2870_wow_firmware.h");
        strcat(fw_name, "RT2870_WOW_FirmwareImage");
        is_bin2h_fw = 1;
      } else {
        strcat(infname, "/mcu/bin/rt2870.bin");
        strcat(outfname, "/include/mcu/rt2870_firmware.h");
        strcat(fw_name, "RT2870_FirmwareImage");
        is_bin2h_fw = 1;
      }
    } else if (strncmp(chipset, "3090", 4) == 0) {
      strcat(infname, "/mcu/bin/rt2860.bin");
      strcat(outfname, "/include/mcu/rt2860_firmware.h");
      strcat(fw_name, "RT2860_FirmwareImage");
      is_bin2h_fw = 1;
    } else if (strncmp(chipset, "2070", 4) == 0) {
      if ((strncmp(wow, "y", 1) == 0) && (strncmp(rt28xx_mode, "STA", 3) == 0)) {
        strcat(infname, "/mcu/bin/rt2870_wow.bin");
        strcat(outfname, "/include/mcu/rt2870_wow_firmware.h");
        strcat(fw_name, "RT2870_WOW_FirmwareImage");
        is_bin2h_fw = 1;
      } else {
        strcat(infname, "/mcu/bin/rt2870.bin");
        strcat(outfname, "/include/mcu/rt2870_firmware.h");
        strcat(fw_name, "RT2870_FirmwareImage");
        is_bin2h_fw = 1;
      }
    } else if (strncmp(chipset, "3070", 4) == 0) {
      if ((strncmp(wow, "y", 1) == 0) && (strncmp(rt28xx_mode, "STA", 3) == 0)) {
        strcat(infname, "/mcu/bin/rt2870_wow.bin");
        strcat(outfname, "/include/mcu/rt2870_wow_firmware.h");
        strcat(fw_name, "RT2870_WOW_FirmwareImage");
        is_bin2h_fw = 1;
      } else {
        strcat(infname, "/mcu/bin/rt2870.bin");
        strcat(outfname, "/include/mcu/rt2870_firmware.h");
        strcat(fw_name, "RT2870_FirmwareImage");
        is_bin2h_fw = 1;
      }
    } else if (strncmp(chipset, "3572", 4) == 0) {
      if ((strncmp(wow, "y", 1) == 0) && (strncmp(rt28xx_mode, "STA", 3) == 0)) {
        strcat(infname, "/mcu/bin/rt2870_wow.bin");
        strcat(outfname, "/include/mcu/rt2870_wow_firmware.h");
        strcat(fw_name, "RT2870_WOW_FirmwareImage");
        is_bin2h_fw = 1;
      } else {
        strcat(infname, "/mcu/bin/rt2870.bin");
        strcat(outfname, "/include/mcu/rt2870_firmware.h");
        strcat(fw_name, "RT2870_FirmwareImage");
        is_bin2h_fw = 1;
      }
    } else if (strncmp(chipset, "3573", 4) == 0) {
      if ((strncmp(wow, "y", 1) == 0) && (strncmp(rt28xx_mode, "STA", 3) == 0)) {
        strcat(infname, "/mcu/bin/rt2870_wow.bin");
        strcat(outfname, "/include/mcu/rt2870_wow_firmware.h");
        strcat(fw_name, "RT2870_WOW_FirmwareImage");
        is_bin2h_fw = 1;
      } else {
        strcat(infname, "/mcu/bin/rt2870.bin");
        strcat(outfname, "/include/mcu/rt2870_firmware.h");
        strcat(fw_name, "RT2870_FirmwareImage");
        is_bin2h_fw = 1;
      }
    } else if (strncmp(chipset, "3370", 4) == 0) {
      if ((strncmp(wow, "y", 1) == 0) && (strncmp(rt28xx_mode, "STA", 3) == 0)) {
        strcat(infname, "/mcu/bin/rt2870_wow.bin");
        strcat(outfname, "/include/mcu/rt2870_wow_firmware.h");
        strcat(fw_name, "RT2870_WOW_FirmwareImage");
        is_bin2h_fw = 1;
      } else {
        strcat(infname, "/mcu/bin/rt2870.bin");
        strcat(outfname, "/include/mcu/rt2870_firmware.h");
        strcat(fw_name, "RT2870_FirmwareImage");
        is_bin2h_fw = 1;
      }
    } else if (strncmp(chipset, "5370", 4) == 0) {
      if ((strncmp(wow, "y", 1) == 0) && (strncmp(rt28xx_mode, "STA", 3) == 0)) {
        strcat(infname, "/mcu/bin/rt2870_wow.bin");
        strcat(outfname, "/include/mcu/rt2870_wow_firmware.h");
        strcat(fw_name, "RT2870_WOW_FirmwareImage");
        is_bin2h_fw = 1;
      } else {
        strcat(infname, "/mcu/bin/rt2870.bin");
        strcat(outfname, "/include/mcu/rt2870_firmware.h");
        strcat(fw_name, "RT2870_FirmwareImage");
        is_bin2h_fw = 1;
      }
    } else if (strncmp(chipset, "5572", 4) == 0) {
      strcat(infname, "/mcu/bin/rt2870.bin");
      strcat(outfname, "/include/mcu/rt2870_firmware.h");
      strcat(fw_name, "RT2870_FirmwareImage");
      is_bin2h_fw = 1;
    } else if (strncmp(chipset, "5592", 4) == 0) {
      strcat(infname, "/mcu/bin/rt2860.bin");
      strcat(outfname, "/include/mcu/rt2860_firmware.h");
      strcat(fw_name, "RT2860_FirmwareImage");
      is_bin2h_fw = 1;
    } else if ((strncmp(chipset, "mt7601e", 7) == 0) || (strncmp(chipset, "mt7601u", 7) == 0)) {
      strcat(infname, "/mcu/bin/MT7601_formal_1.6.bin");
      strcat(outfname, "/include/mcu/mt7601_firmware.h");
      strcat(fw_name, "MT7601_FirmwareImage");
      is_bin2h_fw = 1;
      strcat(ine2pname, "/eeprom/MT7601_USB_V0_D-20130416.bin");
      strcat(oute2pname, "/include/eeprom/mt7601_e2p.h");
      strcat(e2p_name, "MT7601_E2PImage");
      is_bin2h_e2p = 1;
    } else if ((strncmp(chipset, "mt7650e", 7) == 0) || (strncmp(chipset, "mt7650u", 7) == 0) || (strncmp(chipset, "mt7630e", 7) == 0) || (strncmp(chipset, "mt7630u", 7) == 0)) {
      strcat(infname, "/mcu/bin/MT7650.bin");
      strcat(outfname, "/include/mcu/mt7650_firmware.h");
      strcat(fw_name, "MT7650_FirmwareImage");
      is_bin2h_fw = 1;
    } else if ((strncmp(chipset, "mt7610e", 7) == 0) || (strncmp(chipset, "mt7610u", 7) == 0)) {
      strcat(infname, "/mcu/bin/MT7650.bin");
      strcat(outfname, "/include/mcu/mt7610_firmware.h");
      strcat(fw_name, "MT7610_FirmwareImage");
      is_bin2h_fw = 1;
      if ((strncmp(chipset, "mt7610e", 7) == 0)) {
        strcat(ine2pname, "/eeprom/MT7610U_FEM_V1_1.bin");
        strcat(oute2pname, "/include/eeprom/mt7610e_e2p.h");
        strcat(e2p_name, "MT7610E_E2PImage");
      } else if ((strncmp(chipset, "mt7610u", 7) == 0)) {
        strcat(ine2pname, "/eeprom/MT7610U_FEM_V1_1.bin");
        strcat(oute2pname, "/include/eeprom/mt7610u_e2p.h");
        strcat(e2p_name, "MT7610U_E2PImage");
      }
    } else if ((strncmp(chipset, "mt7662e", 7) == 0) || (strncmp(chipset, "mt7662u", 7) == 0) || (strncmp(chipset, "mt7632e", 7) == 0) || (strncmp(chipset, "mt7632u", 7) == 0) || (strncmp(chipset, "mt7612e", 7) == 0) || (strncmp(chipset, "mt7612u", 7) == 0)) {
      strcat(infname, "/mcu/bin/MT7662_E3_v1.9.bin");
      strcat(outfname, "/include/mcu/mt7662_firmware.h");
      strcat(fw_name, "MT7662_FirmwareImage");
      strcat(in_rom_patch, "/mcu/bin/mt7662_patch_e3_hdr_v0.0.2_P69.bin");
      strcat(out_rom_patch, "/include/mcu/mt7662_rom_patch.h");
      strcat(rom_patch_name, "mt7662_rom_patch");
      strcat(ine2pname, "/eeprom/MT7612E_EEPROM_layout_20131121_2G5G_ePAeLNA_TXTC_off.bin");
      strcat(oute2pname, "/include/eeprom/mt76x2_e2p.h");
      strcat(e2p_name, "MT76x2_E2PImage");
      is_bin2h_fw = 1;
      is_bin2h_rom_patch = 1;
      is_bin2h_e2p = 1;
    } else if ((strncmp(chipset, "mt7662tu", 8) == 0) || (strncmp(chipset, "mt7632tu", 8) == 0) || (strncmp(chipset, "mt7612tu", 8) == 0)) {
      strcat(infname, "/mcu/bin/mt7662t_firmware_e1.bin");
      strcat(outfname, "/include/mcu/mt7662t_firmware.h");
      strcat(fw_name, "MT7662T_FirmwareImage");
      strcat(in_rom_patch, "/mcu/bin/mt7662t_patch_e1_hdr.bin");
      strcat(out_rom_patch, "/include/mcu/mt7662t_rom_patch.h");
      strcat(rom_patch_name, "mt7662t_rom_patch");
      is_bin2h_fw = 1;
      is_bin2h_rom_patch = 1;
    } else {
      printf("unknown chipset = %s\n", chipset);
    }
    if (is_bin2h_fw)
      bin2h(infname, outfname, fw_name);
    if (is_bin2h_rom_patch)
      bin2h(in_rom_patch, out_rom_patch, rom_patch_name);
    if (is_bin2h_e2p)
      bin2h(ine2pname, oute2pname, e2p_name);
    chipset = strtok(NULL, " ");
  }
  exit(0);
}
```