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

```asm
<rdsmv>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    -0x5000(%rsp),%r11
L1397:
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  cmp    %r11,%rsp
  jne    L1397
  sub    $0x1a0,%rsp
  mov    %rdi,-0x5168(%rbp)
  mov    %rsi,-0x5170(%rbp)
  mov    %rdx,-0x5178(%rbp)
  mov    %rcx,-0x5180(%rbp)
  mov    %r8,-0x5188(%rbp)
  mov    %r9,-0x5190(%rbp)
  mov    0x10(%rbp),%rax
  mov    %rax,-0x5198(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x1,-0x5140(%rbp)
  mov    $0x0,%eax
  call   <filec_getdebug@plt>
  mov    %eax,-0x511c(%rbp)
  mov    -0x5170(%rbp),%rax
  movq   $0x0,(%rax)
  mov    -0x5180(%rbp),%rax
  movq   $0x0,(%rax)
  mov    -0x5168(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,-0x5150(%rbp)
  cmpl   $0x0,-0x511c(%rbp)
  je     L1076
  mov    -0x5168(%rbp),%rax
  mov    %rax,%rsi
  lea    D225(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L1076:
  lea    -0x5148(%rbp),%rcx
  lea    -0x5150(%rbp),%rdx
  mov    -0x5168(%rbp),%rsi
  lea    -0x5140(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbor_@plt>
  mov    -0x5148(%rbp),%eax
  test   %eax,%eax
  je     L849
  cmpl   $0x0,-0x511c(%rbp)
  je     L476
  mov    -0x5148(%rbp),%edx
  mov    -0x5168(%rbp),%rax
  mov    %rax,%rsi
  lea    D138(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L476:
  mov    $0xfffffffd,%eax
  jmp    L1192
L849:
  movl   $0x1,-0x513c(%rbp)
  lea    -0x513c(%rbp),%rdx
  lea    -0x5140(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbwr_@plt>
  movl   $0x200,-0x5158(%rbp)
  mov    $0x200,%edi
  call   <malloc@plt>
  mov    %rax,-0x50c8(%rbp)
  mov    -0x50c8(%rbp),%rax
  mov    $0x200,%edx
  mov    $0x0,%esi
  mov    %rax,%rdi
  call   <memset@plt>
  cmpl   $0x0,-0x511c(%rbp)
  je     L516
  lea    D710(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L516:
  lea    -0x5148(%rbp),%rcx
  lea    -0x5158(%rbp),%rdx
  mov    -0x50c8(%rbp),%rsi
  lea    -0x5140(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbr_@plt>
  cmpl   $0x0,-0x511c(%rbp)
  je     L530
  mov    -0x5148(%rbp),%eax
  mov    %eax,%esi
  lea    D341(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L530:
  mov    -0x5148(%rbp),%eax
  test   %eax,%eax
  je     L927
  movl   $0xfffffffe,-0x5148(%rbp)
  jmp    L1047
L927:
  mov    -0x50c8(%rbp),%rdx
  lea    -0x514c(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <gethdl@plt>
  mov    %eax,-0x5148(%rbp)
  mov    -0x5148(%rbp),%eax
  test   %eax,%eax
  jns    L579
  movl   $0xfffffffc,-0x5148(%rbp)
  jmp    L1047
L579:
  cmpl   $0x0,-0x511c(%rbp)
  je     L308
  mov    -0x514c(%rbp),%eax
  mov    %eax,%esi
  lea    D450(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L308:
  mov    -0x514c(%rbp),%eax
  lea    0x3ff(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0xa,%eax
  add    $0x1,%eax
  shl    $0xa,%eax
  mov    %eax,%edx
  mov    -0x5178(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0x5178(%rbp),%rax
  mov    (%rax),%eax
  cltq
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,%rdx
  mov    -0x5170(%rbp),%rax
  mov    %rdx,(%rax)
  mov    -0x5178(%rbp),%rax
  mov    (%rax),%eax
  movslq %eax,%rdx
  mov    -0x5170(%rbp),%rax
  mov    (%rax),%rax
  mov    $0x0,%esi
  mov    %rax,%rdi
  call   <memset@plt>
  mov    -0x5170(%rbp),%rax
  mov    (%rax),%rax
  mov    -0x50c8(%rbp),%rcx
  mov    $0x200,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <memcpy@plt>
  mov    -0x50c8(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0x514c(%rbp),%eax
  sub    $0x200,%eax
  mov    %eax,-0x5158(%rbp)
  mov    -0x5158(%rbp),%eax
  test   %eax,%eax
  jle    L534
  mov    -0x5170(%rbp),%rax
  mov    (%rax),%rax
  lea    0x200(%rax),%rsi
  lea    -0x5148(%rbp),%rcx
  lea    -0x5158(%rbp),%rdx
  lea    -0x5140(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbr_@plt>
  mov    -0x5148(%rbp),%eax
  test   %eax,%eax
  je     L534
  movl   $0xfffffffe,-0x5148(%rbp)
  jmp    L1047
L534:
  movl   $0x0,-0x513c(%rbp)
  lea    -0x513c(%rbp),%rdx
  lea    -0x5140(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbwr_@plt>
  mov    -0x5188(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x5170(%rbp),%rax
  mov    (%rax),%rdx
  lea    -0x50b0(%rbp),%rax
  mov    %rax,%rsi
  lea    D235(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <gethd@plt>
  movzbl -0x50b0(%rbp),%eax
  test   %al,%al
  je     L1049
  lea    -0x5144(%rbp),%rdx
  lea    -0x50b0(%rbp),%rax
  lea    D311(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sscanf@plt>
  cmp    $0x1,%eax
  je     L718
L1049:
  cmpl   $0x0,-0x511c(%rbp)
  je     L1456
  lea    D457(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1456
L718:
  cmpl   $0x0,-0x511c(%rbp)
  je     L1445
  mov    -0x5144(%rbp),%eax
  mov    %eax,%esi
  lea    D43(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L1445:
  mov    -0x5144(%rbp),%edx
  mov    -0x5188(%rbp),%rax
  mov    %edx,(%rax)
  movl   $0x0,-0x5154(%rbp)
  movl   $0x1,-0x5134(%rbp)
  jmp    L796
L329:
  mov    -0x5154(%rbp),%eax
  lea    0x1(%rax),%edx
  lea    -0x5060(%rbp),%rax
  lea    D53(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  mov    -0x5170(%rbp),%rax
  mov    (%rax),%rdx
  lea    -0x50b0(%rbp),%rcx
  lea    -0x5060(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <gethd@plt>
  movzbl -0x50b0(%rbp),%eax
  test   %al,%al
  je     L441
  mov    -0x5154(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x5190(%rbp),%rax
  add    %rax,%rdx
  lea    -0x50b0(%rbp),%rax
  lea    D311(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sscanf@plt>
  cmp    $0x1,%eax
  je     L39
L441:
  cmpl   $0x0,-0x511c(%rbp)
  je     L101
  lea    -0x5060(%rbp),%rax
  mov    %rax,%rsi
  lea    D77(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L101
L39:
  mov    -0x5154(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x5190(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    -0x5134(%rbp),%edx
  imul   %edx,%eax
  mov    %eax,-0x5134(%rbp)
  mov    -0x5154(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x5154(%rbp)
L796:
  mov    -0x5154(%rbp),%edx
  mov    -0x5144(%rbp),%eax
  cmp    %eax,%edx
  jl     L329
  mov    -0x5170(%rbp),%rax
  mov    (%rax),%rdx
  lea    -0x50b0(%rbp),%rax
  mov    %rax,%rsi
  lea    D752(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <gethd@plt>
  movzbl -0x50b0(%rbp),%eax
  test   %al,%al
  je     L351
  lea    -0x50b0(%rbp),%rax
  lea    D777(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L68
  movl   $0x0,-0x5130(%rbp)
  jmp    L147
L68:
  lea    -0x50b0(%rbp),%rax
  lea    D601(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L781
  movl   $0x1,-0x5130(%rbp)
  jmp    L147
L781:
  movl   $0xfffffffc,-0x5148(%rbp)
  jmp    L1047
L351:
  movl   $0xffffffff,-0x5130(%rbp)
L147:
  mov    -0x5170(%rbp),%rax
  mov    (%rax),%rdx
  lea    -0x50b0(%rbp),%rax
  mov    %rax,%rsi
  lea    D438(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <gethd@plt>
  cmpl   $0x0,-0x511c(%rbp)
  je     L1261
  lea    -0x50b0(%rbp),%rax
  mov    %rax,%rsi
  lea    D205(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x5144(%rbp),%eax
  mov    %eax,%esi
  lea    D22(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x0,-0x5154(%rbp)
  jmp    L1241
L95:
  mov    -0x5154(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x5190(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,%esi
  lea    D455(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x5154(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x5154(%rbp)
L1241:
  mov    -0x5154(%rbp),%edx
  mov    -0x5144(%rbp),%eax
  cmp    %eax,%edx
  jl     L95
  mov    $0xa,%edi
  call   <putchar@plt>
  mov    -0x5134(%rbp),%eax
  mov    %eax,%esi
  lea    D275(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  cmpl   $0x0,-0x5130(%rbp)
  je     L1071
  lea    D333(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1261
L1071:
  lea    D641(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1261:
  lea    -0x50b0(%rbp),%rax
  lea    D196(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L750
  lea    -0x50b0(%rbp),%rax
  lea    D657(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L750
  lea    -0x50b0(%rbp),%rax
  lea    D220(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L750
  lea    -0x50b0(%rbp),%rax
  lea    D515(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L961
L750:
  cmpl   $0x0,-0x511c(%rbp)
  je     L843
  lea    D726(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L843:
  mov    -0x5134(%rbp),%eax
  mov    %eax,-0x5158(%rbp)
  mov    -0x5158(%rbp),%eax
  cltq
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x50b8(%rbp)
  cmpl   $0x0,-0x511c(%rbp)
  je     L1298
  mov    -0x5158(%rbp),%eax
  mov    %eax,%esi
  lea    D244(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D73(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1298:
  lea    -0x5148(%rbp),%rcx
  lea    -0x5158(%rbp),%rdx
  mov    -0x50b8(%rbp),%rsi
  lea    -0x5140(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbr_@plt>
  cmpl   $0x0,-0x511c(%rbp)
  je     L836
  mov    -0x5148(%rbp),%eax
  mov    %eax,%esi
  lea    D508(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L836:
  mov    -0x5148(%rbp),%eax
  test   %eax,%eax
  je     L215
  movl   $0xfffffffe,-0x5148(%rbp)
  jmp    L1047
L215:
  movl   $0x1,-0x513c(%rbp)
  lea    -0x513c(%rbp),%rdx
  lea    -0x5140(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbwr_@plt>
  cmpl   $0x0,-0x511c(%rbp)
  je     L331
  mov    -0x5134(%rbp),%eax
  cltq
  add    %eax,%eax
  mov    %eax,-0x5158(%rbp)
  mov    -0x5158(%rbp),%eax
  mov    %eax,%esi
  lea    D436(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L331:
  mov    -0x5134(%rbp),%eax
  cltq
  add    %rax,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,%rdx
  mov    -0x5180(%rbp),%rax
  mov    %rdx,(%rax)
  mov    -0x5198(%rbp),%rax
  movl   $0x4,(%rax)
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x5100(%rbp)
  mov    -0x50b8(%rbp),%rax
  mov    %rax,-0x5108(%rbp)
  cmpl   $0x0,-0x511c(%rbp)
  je     L811
  mov    -0x5134(%rbp),%eax
  mov    %eax,%esi
  lea    D218(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L811:
  movl   $0x0,-0x512c(%rbp)
  jmp    L145
L1164:
  mov    -0x5108(%rbp),%rax
  lea    0x1(%rax),%rdx
  mov    %rdx,-0x5108(%rbp)
  movzbl (%rax),%ecx
  mov    -0x5100(%rbp),%rax
  lea    0x2(%rax),%rdx
  mov    %rdx,-0x5100(%rbp)
  movzbl %cl,%edx
  mov    %dx,(%rax)
  addl   $0x1,-0x512c(%rbp)
L145:
  mov    -0x512c(%rbp),%eax
  cmp    -0x5134(%rbp),%eax
  jl     L1164
  mov    -0x50b8(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  jmp    L1047
L961:
  lea    -0x50b0(%rbp),%rax
  lea    D160(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L888
  cmpl   $0x0,-0x511c(%rbp)
  je     L887
  lea    D195(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L887:
  mov    -0x5134(%rbp),%eax
  cltq
  shr    $0x3,%rax
  mov    %eax,-0x5158(%rbp)
  mov    -0x5158(%rbp),%eax
  cltq
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x50c0(%rbp)
  cmpl   $0x0,-0x511c(%rbp)
  je     L412
  lea    D195(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L412:
  lea    -0x5148(%rbp),%rcx
  lea    -0x5158(%rbp),%rdx
  mov    -0x50c0(%rbp),%rsi
  lea    -0x5140(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbr_@plt>
  cmpl   $0x0,-0x511c(%rbp)
  je     L778
  mov    -0x5148(%rbp),%eax
  mov    %eax,%esi
  lea    D341(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L778:
  mov    -0x5148(%rbp),%eax
  test   %eax,%eax
  je     L58
  movl   $0xfffffffe,-0x5148(%rbp)
  jmp    L1047
L58:
  movl   $0x1,-0x513c(%rbp)
  lea    -0x513c(%rbp),%rdx
  lea    -0x5140(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbwr_@plt>
  mov    -0x5134(%rbp),%eax
  cltq
  add    %rax,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,%rdx
  mov    -0x5180(%rbp),%rax
  mov    %rdx,(%rax)
  mov    -0x5198(%rbp),%rax
  movl   $0x4,(%rax)
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x50f0(%rbp)
  mov    -0x50c0(%rbp),%rax
  mov    %rax,-0x50f8(%rbp)
  movl   $0x0,-0x5128(%rbp)
  jmp    L627
L908:
  movl   $0x0,-0x5150(%rbp)
  jmp    L133
L779:
  mov    -0x50f8(%rbp),%rax
  movzbl (%rax),%eax
  movzbl %al,%edx
  mov    -0x5150(%rbp),%eax
  mov    $0x2,%esi
  mov    %eax,%ecx
  shl    %cl,%esi
  mov    %esi,%eax
  mov    %edx,%ecx
  and    %eax,%ecx
  mov    -0x50f0(%rbp),%rax
  lea    0x2(%rax),%rdx
  mov    %rdx,-0x50f0(%rbp)
  mov    %ecx,%edx
  mov    %dx,(%rax)
  mov    -0x5150(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x5150(%rbp)
L133:
  mov    -0x5150(%rbp),%eax
  cmp    $0x7,%eax
  jle    L779
  addq   $0x1,-0x50f8(%rbp)
  addl   $0x8,-0x5128(%rbp)
L627:
  mov    -0x5128(%rbp),%eax
  cmp    -0x5134(%rbp),%eax
  jl     L908
  mov    -0x50c0(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  jmp    L1047
L888:
  lea    -0x50b0(%rbp),%rax
  lea    D789(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L1343
  lea    -0x50b0(%rbp),%rax
  lea    D707(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L1386
L1343:
  cmpl   $0x0,-0x511c(%rbp)
  je     L510
  lea    D751(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L510:
  mov    -0x5134(%rbp),%eax
  cltq
  add    %eax,%eax
  mov    %eax,-0x5158(%rbp)
  cmpl   $0x0,-0x511c(%rbp)
  je     L291
  lea    D751(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    -0x5158(%rbp),%eax
  mov    %eax,%esi
  lea    D621(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L291:
  mov    -0x5158(%rbp),%eax
  cltq
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,%rdx
  mov    -0x5180(%rbp),%rax
  mov    %rdx,(%rax)
  mov    -0x5198(%rbp),%rax
  movl   $0x4,(%rax)
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rsi
  lea    -0x5148(%rbp),%rcx
  lea    -0x5158(%rbp),%rdx
  lea    -0x5140(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbr_@plt>
  cmpl   $0x0,-0x511c(%rbp)
  je     L986
  mov    -0x5148(%rbp),%eax
  mov    %eax,%esi
  lea    D341(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L986:
  mov    -0x5148(%rbp),%eax
  test   %eax,%eax
  je     L583
  movl   $0xfffffffe,-0x5148(%rbp)
  jmp    L1047
L583:
  movl   $0x1,-0x513c(%rbp)
  lea    -0x513c(%rbp),%rdx
  lea    -0x5140(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbwr_@plt>
  mov    $0x0,%eax
  call   <getbo@plt>
  cmp    %eax,-0x5130(%rbp)
  je     L1223
  cmpl   $0x0,-0x511c(%rbp)
  je     L786
  lea    D116(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L786:
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x5158(%rbp),%eax
  mov    %eax,%esi
  mov    $0x0,%edi
  mov    $0x0,%eax
  call   <swpbyt@plt>
  jmp    L1223
L1386:
  lea    -0x50b0(%rbp),%rax
  lea    D787(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L797
  lea    -0x50b0(%rbp),%rax
  lea    D362(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L797
  lea    -0x50b0(%rbp),%rax
  lea    D772(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L698
L797:
  cmpl   $0x0,-0x511c(%rbp)
  je     L230
  lea    D472(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L230:
  mov    -0x5134(%rbp),%eax
  cltq
  shl    $0x2,%eax
  mov    %eax,-0x5158(%rbp)
  cmpl   $0x0,-0x511c(%rbp)
  je     L758
  lea    D115(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    -0x5158(%rbp),%eax
  mov    %eax,%esi
  lea    D621(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L758:
  mov    -0x5158(%rbp),%eax
  cltq
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,%rdx
  mov    -0x5180(%rbp),%rax
  mov    %rdx,(%rax)
  mov    -0x5198(%rbp),%rax
  movl   $0x5,(%rax)
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rsi
  lea    -0x5148(%rbp),%rcx
  lea    -0x5158(%rbp),%rdx
  lea    -0x5140(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbr_@plt>
  cmpl   $0x0,-0x511c(%rbp)
  je     L425
  mov    -0x5148(%rbp),%eax
  mov    %eax,%esi
  lea    D341(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L425:
  mov    -0x5148(%rbp),%eax
  test   %eax,%eax
  je     L390
  movl   $0xfffffffe,-0x5148(%rbp)
  jmp    L1047
L390:
  movl   $0x1,-0x513c(%rbp)
  lea    -0x513c(%rbp),%rdx
  lea    -0x5140(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbwr_@plt>
  mov    $0x0,%eax
  call   <getbo@plt>
  cmp    %eax,-0x5130(%rbp)
  je     L1421
  cmpl   $0x0,-0x511c(%rbp)
  je     L1302
  lea    D116(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1302:
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x5158(%rbp),%eax
  mov    %eax,%esi
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <swpbyt@plt>
  jmp    L1421
L698:
  lea    -0x50b0(%rbp),%rax
  lea    D209(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L375
  lea    -0x50b0(%rbp),%rax
  lea    D18(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L1503
L375:
  cmpl   $0x0,-0x511c(%rbp)
  je     L1507
  lea    D261(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1507:
  mov    -0x5134(%rbp),%eax
  cltq
  shl    $0x2,%eax
  mov    %eax,-0x5158(%rbp)
  cmpl   $0x0,-0x511c(%rbp)
  je     L1420
  lea    D261(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    -0x5158(%rbp),%eax
  mov    %eax,%esi
  lea    D621(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L1420:
  mov    -0x5158(%rbp),%eax
  cltq
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,%rdx
  mov    -0x5180(%rbp),%rax
  mov    %rdx,(%rax)
  mov    -0x5198(%rbp),%rax
  movl   $0x7,(%rax)
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rsi
  lea    -0x5148(%rbp),%rcx
  lea    -0x5158(%rbp),%rdx
  lea    -0x5140(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbr_@plt>
  cmpl   $0x0,-0x511c(%rbp)
  je     L970
  mov    -0x5148(%rbp),%eax
  mov    %eax,%esi
  lea    D341(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L970:
  mov    -0x5148(%rbp),%eax
  test   %eax,%eax
  je     L826
  movl   $0xfffffffe,-0x5148(%rbp)
  jmp    L1047
L826:
  movl   $0x1,-0x513c(%rbp)
  lea    -0x513c(%rbp),%rdx
  lea    -0x5140(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbwr_@plt>
  mov    $0x0,%eax
  call   <getbo@plt>
  cmp    %eax,-0x5130(%rbp)
  je     L1369
  cmpl   $0x0,-0x511c(%rbp)
  je     L1042
  lea    D116(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1042:
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x5158(%rbp),%eax
  mov    %eax,%esi
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <swpbyt@plt>
  jmp    L1369
L1503:
  lea    -0x50b0(%rbp),%rax
  lea    D147(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L114
  lea    -0x50b0(%rbp),%rax
  lea    D127(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L26
L114:
  cmpl   $0x0,-0x511c(%rbp)
  je     L496
  lea    D459(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L496:
  mov    -0x5134(%rbp),%eax
  add    %eax,%eax
  cltq
  shl    $0x2,%eax
  mov    %eax,-0x5158(%rbp)
  cmpl   $0x0,-0x511c(%rbp)
  je     L285
  lea    D459(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    -0x5158(%rbp),%eax
  mov    %eax,%esi
  lea    D621(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L285:
  mov    -0x5158(%rbp),%eax
  cltq
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,%rdx
  mov    -0x5180(%rbp),%rax
  mov    %rdx,(%rax)
  mov    -0x5198(%rbp),%rax
  movl   $0x9,(%rax)
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rsi
  lea    -0x5148(%rbp),%rcx
  lea    -0x5158(%rbp),%rdx
  lea    -0x5140(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbr_@plt>
  cmpl   $0x0,-0x511c(%rbp)
  je     L433
  mov    -0x5148(%rbp),%eax
  mov    %eax,%esi
  lea    D341(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L433:
  mov    -0x5148(%rbp),%eax
  test   %eax,%eax
  je     L1405
  movl   $0xfffffffe,-0x5148(%rbp)
  jmp    L1047
L1405:
  movl   $0x1,-0x513c(%rbp)
  lea    -0x513c(%rbp),%rdx
  lea    -0x5140(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbwr_@plt>
  mov    $0x0,%eax
  call   <getbo@plt>
  cmp    %eax,-0x5130(%rbp)
  je     L682
  cmpl   $0x0,-0x511c(%rbp)
  je     L737
  lea    D116(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L737:
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x5158(%rbp),%eax
  mov    %eax,%esi
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <swpbyt@plt>
  jmp    L682
L26:
  lea    -0x50b0(%rbp),%rax
  lea    D596(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L131
  movl   $0x0,-0x5124(%rbp)
  movl   $0x0,-0x5120(%rbp)
  mov    -0x5190(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x5118(%rbp)
  mov    -0x5190(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x5114(%rbp)
  cmpl   $0x0,-0x511c(%rbp)
  je     L512
  lea    D456(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L512:
  mov    -0x5144(%rbp),%eax
  cmp    $0x2,%eax
  jne    L144
  mov    -0x5134(%rbp),%eax
  cltq
  add    %eax,%eax
  mov    %eax,-0x5158(%rbp)
  mov    -0x5158(%rbp),%eax
  cltq
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,%rdx
  mov    -0x5180(%rbp),%rax
  mov    %rdx,(%rax)
  mov    $0x0,%eax
  call   <getbo@plt>
  mov    %eax,-0x5130(%rbp)
  cmpl   $0x0,-0x5130(%rbp)
  jne    L180
  movl   $0x0,-0x5124(%rbp)
  movl   $0x1,-0x5120(%rbp)
  jmp    L917
L180:
  cmpl   $0x1,-0x5130(%rbp)
  jne    L917
  movl   $0x1,-0x5124(%rbp)
  movl   $0x0,-0x5120(%rbp)
L917:
  movl   $0x2,-0x5138(%rbp)
  lea    -0x5148(%rbp),%rcx
  lea    -0x5138(%rbp),%rdx
  lea    -0x5010(%rbp),%rsi
  lea    -0x5140(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbr_@plt>
  mov    -0x5148(%rbp),%eax
  test   %eax,%eax
  je     L511
  movl   $0xfffffffe,-0x5148(%rbp)
  jmp    L1047
L511:
  mov    -0x5138(%rbp),%eax
  sub    $0x2,%eax
  cltq
  movzbl -0x5010(%rbp,%rax,1),%eax
  movzbl %al,%eax
  shl    $0x8,%eax
  mov    %eax,%edx
  mov    -0x5138(%rbp),%eax
  sub    $0x1,%eax
  cltq
  movzbl -0x5010(%rbp,%rax,1),%eax
  movzbl %al,%eax
  add    %edx,%eax
  mov    %eax,-0x5138(%rbp)
  movl   $0x0,-0x5150(%rbp)
  jmp    L580
L1165:
  cmpl   $0x0,-0x511c(%rbp)
  je     L1121
  mov    -0x5138(%rbp),%eax
  mov    %eax,%esi
  lea    D215(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L1121:
  lea    -0x5148(%rbp),%rcx
  lea    -0x5138(%rbp),%rdx
  lea    -0x5010(%rbp),%rsi
  lea    -0x5140(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbr_@plt>
  mov    -0x5148(%rbp),%eax
  test   %eax,%eax
  je     L1338
  movl   $0xfffffffe,-0x5148(%rbp)
  jmp    L1047
L1338:
  cmpl   $0x0,-0x511c(%rbp)
  je     L853
  mov    -0x5138(%rbp),%eax
  sub    -0x5118(%rbp),%eax
  sub    $0x2,%eax
  mov    %eax,%esi
  lea    D120(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L853:
  mov    -0x5118(%rbp),%eax
  cltq
  lea    -0x5010(%rbp),%rdx
  add    %rdx,%rax
  mov    %rax,-0x50e8(%rbp)
  lea    -0x2810(%rbp),%rax
  mov    %rax,-0x50e0(%rbp)
  jmp    L578
L84:
  mov    -0x50e8(%rbp),%rax
  lea    0x1(%rax),%rdx
  mov    %rdx,-0x50e8(%rbp)
  movzbl (%rax),%eax
  movzbl %al,%eax
  mov    %eax,-0x5110(%rbp)
  mov    -0x50e8(%rbp),%rax
  lea    0x1(%rax),%rdx
  mov    %rdx,-0x50e8(%rbp)
  movzbl (%rax),%eax
  movzbl %al,%eax
  mov    %eax,-0x510c(%rbp)
  movl   $0x0,-0x5154(%rbp)
  jmp    L815
L1299:
  mov    -0x50e0(%rbp),%rax
  lea    0x1(%rax),%rdx
  mov    %rdx,-0x50e0(%rbp)
  mov    -0x510c(%rbp),%edx
  mov    %dl,(%rax)
  mov    -0x5154(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x5154(%rbp)
L815:
  mov    -0x5154(%rbp),%eax
  cmp    %eax,-0x5110(%rbp)
  jg     L1299
L578:
  mov    -0x5138(%rbp),%eax
  cltq
  lea    -0x2(%rax),%rdx
  lea    -0x5010(%rbp),%rax
  add    %rdx,%rax
  cmp    %rax,-0x50e8(%rbp)
  jb     L84
  cmpl   $0x0,-0x511c(%rbp)
  je     L1157
  lea    -0x2810(%rbp),%rdx
  mov    -0x50e0(%rbp),%rax
  sub    %rdx,%rax
  mov    %rax,%rsi
  lea    D765(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L1157:
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x5150(%rbp),%eax
  imul   -0x5118(%rbp),%eax
  add    %eax,%eax
  movslq %eax,%rcx
  mov    -0x5124(%rbp),%eax
  cltq
  add    %rcx,%rax
  add    %rdx,%rax
  mov    %rax,-0x50d8(%rbp)
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x5150(%rbp),%eax
  imul   -0x5118(%rbp),%eax
  add    %eax,%eax
  movslq %eax,%rcx
  mov    -0x5120(%rbp),%eax
  cltq
  add    %rcx,%rax
  add    %rdx,%rax
  mov    %rax,-0x50d0(%rbp)
  lea    -0x5010(%rbp),%rax
  mov    %rax,-0x50e8(%rbp)
  lea    -0x2810(%rbp),%rax
  mov    %rax,-0x50e0(%rbp)
  jmp    L697
L1102:
  mov    -0x50e8(%rbp),%rax
  lea    0x1(%rax),%rdx
  mov    %rdx,-0x50e8(%rbp)
  movzbl (%rax),%edx
  mov    -0x50d8(%rbp),%rax
  mov    %dl,(%rax)
  mov    -0x50e0(%rbp),%rax
  lea    0x1(%rax),%rdx
  mov    %rdx,-0x50e0(%rbp)
  movzbl (%rax),%edx
  mov    -0x50d0(%rbp),%rax
  mov    %dl,(%rax)
  addq   $0x2,-0x50d8(%rbp)
  addq   $0x2,-0x50d0(%rbp)
L697:
  mov    -0x5118(%rbp),%eax
  cltq
  lea    -0x5010(%rbp),%rdx
  add    %rdx,%rax
  cmp    %rax,-0x50e8(%rbp)
  jb     L1102
  cmpl   $0x0,-0x511c(%rbp)
  je     L1117
  mov    -0x5150(%rbp),%eax
  mov    %eax,%esi
  lea    D650(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D669(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1117:
  mov    -0x5138(%rbp),%eax
  sub    $0x2,%eax
  cltq
  movzbl -0x5010(%rbp,%rax,1),%eax
  movzbl %al,%eax
  shl    $0x8,%eax
  mov    %eax,%edx
  mov    -0x5138(%rbp),%eax
  sub    $0x1,%eax
  cltq
  movzbl -0x5010(%rbp,%rax,1),%eax
  movzbl %al,%eax
  add    %edx,%eax
  mov    %eax,-0x5138(%rbp)
  mov    -0x5150(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x5150(%rbp)
L580:
  mov    -0x5114(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x5150(%rbp),%eax
  cmp    %eax,%edx
  jg     L1165
  mov    -0x5138(%rbp),%eax
  sub    $0x2,%eax
  mov    %eax,-0x5138(%rbp)
  lea    -0x5148(%rbp),%rcx
  lea    -0x5138(%rbp),%rdx
  lea    -0x5010(%rbp),%rsi
  lea    -0x5140(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbr_@plt>
  mov    -0x5148(%rbp),%eax
  test   %eax,%eax
  je     L460
  movl   $0xfffffffe,-0x5148(%rbp)
  jmp    L1047
L460:
  mov    -0x5118(%rbp),%eax
  cltq
  lea    -0x5010(%rbp),%rdx
  add    %rdx,%rax
  mov    %rax,-0x50e8(%rbp)
  lea    -0x2810(%rbp),%rax
  mov    %rax,-0x50e0(%rbp)
  jmp    L182
L732:
  mov    -0x50e8(%rbp),%rax
  lea    0x1(%rax),%rdx
  mov    %rdx,-0x50e8(%rbp)
  movzbl (%rax),%eax
  movzbl %al,%eax
  mov    %eax,-0x5110(%rbp)
  mov    -0x50e8(%rbp),%rax
  lea    0x1(%rax),%rdx
  mov    %rdx,-0x50e8(%rbp)
  movzbl (%rax),%eax
  movzbl %al,%eax
  mov    %eax,-0x510c(%rbp)
  movl   $0x0,-0x5154(%rbp)
  jmp    L83
L639:
  mov    -0x50e0(%rbp),%rax
  lea    0x1(%rax),%rdx
  mov    %rdx,-0x50e0(%rbp)
  mov    -0x510c(%rbp),%edx
  mov    %dl,(%rax)
  mov    -0x5154(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x5154(%rbp)
L83:
  mov    -0x5154(%rbp),%eax
  cmp    %eax,-0x5110(%rbp)
  jg     L639
L182:
  mov    -0x5138(%rbp),%eax
  cltq
  lea    -0x5010(%rbp),%rdx
  add    %rdx,%rax
  cmp    %rax,-0x50e8(%rbp)
  jb     L732
  cmpl   $0x0,-0x511c(%rbp)
  je     L341
  lea    -0x2810(%rbp),%rdx
  mov    -0x50e0(%rbp),%rax
  sub    %rdx,%rax
  mov    %rax,%rsi
  lea    D765(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L341:
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x5150(%rbp),%eax
  imul   -0x5118(%rbp),%eax
  add    %eax,%eax
  movslq %eax,%rcx
  mov    -0x5124(%rbp),%eax
  cltq
  add    %rcx,%rax
  add    %rdx,%rax
  mov    %rax,-0x50d8(%rbp)
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x5150(%rbp),%eax
  imul   -0x5118(%rbp),%eax
  add    %eax,%eax
  movslq %eax,%rcx
  mov    -0x5120(%rbp),%eax
  cltq
  add    %rcx,%rax
  add    %rdx,%rax
  mov    %rax,-0x50d0(%rbp)
  lea    -0x5010(%rbp),%rax
  mov    %rax,-0x50e8(%rbp)
  lea    -0x2810(%rbp),%rax
  mov    %rax,-0x50e0(%rbp)
  jmp    L975
L1224:
  mov    -0x50e8(%rbp),%rax
  lea    0x1(%rax),%rdx
  mov    %rdx,-0x50e8(%rbp)
  movzbl (%rax),%edx
  mov    -0x50d8(%rbp),%rax
  mov    %dl,(%rax)
  mov    -0x50e0(%rbp),%rax
  lea    0x1(%rax),%rdx
  mov    %rdx,-0x50e0(%rbp)
  movzbl (%rax),%edx
  mov    -0x50d0(%rbp),%rax
  mov    %dl,(%rax)
  addq   $0x2,-0x50d8(%rbp)
  addq   $0x2,-0x50d0(%rbp)
L975:
  mov    -0x5118(%rbp),%eax
  cltq
  lea    -0x5010(%rbp),%rdx
  add    %rdx,%rax
  cmp    %rax,-0x50e8(%rbp)
  jb     L1224
  cmpl   $0x0,-0x511c(%rbp)
  je     L1403
  mov    -0x5150(%rbp),%eax
  mov    %eax,%esi
  lea    D650(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D610(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1403:
  mov    -0x5170(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,%rdx
  lea    D707(%rip),%rax
  mov    %rax,%rsi
  lea    D438(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <puthd@plt>
  mov    -0x5198(%rbp),%rax
  movl   $0x4,(%rax)
  jmp    L1047
L131:
  cmpl   $0x0,-0x511c(%rbp)
  je     L276
  lea    D754(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L276:
  movl   $0xfffffffc,-0x5148(%rbp)
  jmp    L1047
L1456:
  nop
  jmp    L1047
L101:
  nop
  jmp    L1047
L1223:
  nop
  jmp    L1047
L1421:
  nop
  jmp    L1047
L1369:
  nop
  jmp    L1047
L682:
  nop
  jmp    L1047
L144:
  nop
L1047:
  cmpl   $0x0,-0x511c(%rbp)
  je     L23
  lea    D437(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L23:
  mov    -0x5148(%rbp),%eax
  test   %eax,%eax
  je     L437
  lea    -0x5154(%rbp),%rdx
  lea    -0x5140(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbcr_@plt>
  mov    -0x5170(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L116
  mov    -0x5170(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,%rdi
  call   <free@plt>
L116:
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L1327
  mov    -0x5180(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,%rdi
  call   <free@plt>
  jmp    L1327
L437:
  lea    -0x5148(%rbp),%rdx
  lea    -0x5140(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <dskbcr_@plt>
L1327:
  cmpl   $0x0,-0x511c(%rbp)
  je     L808
  mov    -0x5148(%rbp),%eax
  mov    %eax,%esi
  lea    D471(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L808:
  mov    -0x5148(%rbp),%eax
L1192:
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L809
  call   <__stack_chk_fail@plt>
L809:
  leave
  ret
```

tool_calls: name: unpack_data
arguments: label: D225
type: string
name: unpack_data
arguments: label: D138
type: string
name: unpack_data
arguments: label: D710
type: string
name: unpack_data
arguments: label: D341
type: string
name: unpack_data
arguments: label: D450
type: string
name: unpack_data
arguments: label: D235
type: string
name: unpack_data
arguments: label: D311
type: string
name: unpack_data
arguments: label: D457
type: string
name: unpack_data
arguments: label: D43
type: string
name: unpack_data
arguments: label: D53
type: string
name: unpack_data
arguments: label: D77
type: string
name: unpack_data
arguments: label: D752
type: string
name: unpack_data
arguments: label: D777
type: string
name: unpack_data
arguments: label: D601
type: string
name: unpack_data
arguments: label: D438
type: string
name: unpack_data
arguments: label: D205
type: string
name: unpack_data
arguments: label: D22
type: string
name: unpack_data
arguments: label: D455
type: string
name: unpack_data
arguments: label: D275
type: string
name: unpack_data
arguments: label: D333
type: string
name: unpack_data
arguments: label: D641
type: string
name: unpack_data
arguments: label: D196
type: string
name: unpack_data
arguments: label: D657
type: string
name: unpack_data
arguments: label: D220
type: string
name: unpack_data
arguments: label: D515
type: string
name: unpack_data
arguments: label: D726
type: string
name: unpack_data
arguments: label: D244
type: string
name: unpack_data
arguments: label: D73
type: string
name: unpack_data
arguments: label: D508
type: string
name: unpack_data
arguments: label: D436
type: string
name: unpack_data
arguments: label: D218
type: string
name: unpack_data
arguments: label: D160
type: string
name: unpack_data
arguments: label: D195
type: string
name: unpack_data
arguments: label: D789
type: string
name: unpack_data
arguments: label: D707
type: string
name: unpack_data
arguments: label: D751
type: string
name: unpack_data
arguments: label: D621
type: string
name: unpack_data
arguments: label: D116
type: string
name: unpack_data
arguments: label: D787
type: string
name: unpack_data
arguments: label: D362
type: string
name: unpack_data
arguments: label: D772
type: string
name: unpack_data
arguments: label: D472
type: string
name: unpack_data
arguments: label: D115
type: string
name: unpack_data
arguments: label: D209
type: string
name: unpack_data
arguments: label: D18
type: string
name: unpack_data
arguments: label: D261
type: string
name: unpack_data
arguments: label: D147
type: string
name: unpack_data
arguments: label: D127
type: string
name: unpack_data
arguments: label: D459
type: string
name: unpack_data
arguments: label: D596
type: string
name: unpack_data
arguments: label: D456
type: string
name: unpack_data
arguments: label: D215
type: string
name: unpack_data
arguments: label: D120
type: string
name: unpack_data
arguments: label: D765
type: string
name: unpack_data
arguments: label: D650
type: string
name: unpack_data
arguments: label: D669
type: string
name: unpack_data
arguments: label: D610
type: string
name: unpack_data
arguments: label: D754
type: string
name: unpack_data
arguments: label: D437
type: string
name: unpack_data
arguments: label: D471
type: string

tool: D225: Opening file: %s


tool: D138: Error opening file %s, istat=%d


tool: D710: Reading header

tool: D341: Read Completion status : %d


tool: D450: Header length : %d


tool: D235: DIM

tool: D311: %d

tool: D457: Error reading dimensions

tool: D43: Number of dimensions : %d


tool: D53: SIZE%d

tool: D77: Error reading %s


tool: D752: BYTE_ORDER

tool: D777: little_endian

tool: D601: big_endian

tool: D438: TYPE

tool: D205: Type >%s<


tool: D22: Image size (%d)

tool: D455:  %d 

tool: D275: Number of elements : %d


tool: D333: Byte order : big_endian

tool: D641: Byte order : little_endian

tool: D196: unsigned_byte

tool: D657: byte

tool: D220: unsigned_char

tool: D515: char

tool: D726: Reading byte image

tool: D244: Allocating %d bytes for byte image


tool: D73: Reading unsigned byte image

tool: D508: Read Byte Completion status : %d


tool: D436: Allocating %d bytes for short image


tool: D218: Converting %d bytes to short image


tool: D160: bit

tool: D195: Reading bit image

tool: D789: mad

tool: D707: unsigned_short

tool: D751: Reading unsigned short image

tool: D621: Allocating %d bytes


tool: D116: Swapping bytes

tool: D787: long

tool: D362: long_integer

tool: D772: signed_long

tool: D472: Reading long image

tool: D115: Reading signed long image

tool: D209: float

tool: D18: ieee_float

tool: D261: Reading float image

tool: D147: complex

tool: D127: ieee_complex

tool: D459: Reading complex image

tool: D596: swap_rlmsb

tool: D456: Reading compressed image

tool: D215: Reading %d bytes


tool: D120: Uncompressing %d bytes


tool: D765: Restored %d bytes in MSB


tool: D650: Done line %d


tool: D669: =================================

tool: D610: ===================================

tool: D754: Unsupported Filetype

tool: D437: Done reading file

tool: D471: RDSMV completion status %d


assistant: ```c
int rdsmv(char *filename, char **head, int *lhead, char **array, int *naxis, int *axis, int *type) {
  int readl;
  int i, j, k;
  int istat, bo, dim;
  char s[80], s1[80];
  int lun = 1;
  int lflag;
  int nelm;
  char *thead;
  int filec_debug = filec_getdebug();
  *head = 0;
  *array = 0;
  j = strlen(filename);
  if (filec_debug)
    printf("Opening file: %s\n", filename);
  dskbor_(&lun, filename, &j, &istat);
  if (istat != 0) {
    if (filec_debug)
      printf("Error opening file %s, istat=%d\n", filename, istat);
    return (-3);
  }
  lflag = (1 == 1);
  dskbwr_(&lun, &lflag);
  readl = 512;
  thead = malloc(512);
  memset(thead, 0, 512);
  if (filec_debug)
    printf("Reading header\n");
  dskbr_(&lun, thead, &readl, &istat);
  if (filec_debug)
    printf("Read Completion status : %d\n", istat);
  if (istat != 0) {
    istat = -2;
    goto close;
  }
  if ((istat = gethdl(&k, thead)) < 0) {
    istat = -4;
    goto close;
  }
  if (filec_debug)
    printf("Header length : %d\n", k);
  *lhead = ((k / 1024) + 1) * 1024;
  *head = malloc(*lhead);
  memset(*head, 0, *lhead);
  memcpy(*head, thead, 512);
  free(thead);
  readl = k - 512;
  if (readl > 0) {
    dskbr_(&lun, *head + 512, &readl, &istat);
    if (istat != 0) {
      istat = -2;
      goto close;
    }
  }
  lflag = (1 == 0);
  dskbwr_(&lun, &lflag);
  *naxis = 0;
  gethd("DIM", s, *head);
  if (*s == 0 || sscanf(s, "%d", &dim) != 1) {
    if (filec_debug)
      printf("Error reading dimensions\n");
    goto close;
  }
  if (filec_debug)
    printf("Number of dimensions : %d\n", dim);
  *naxis = dim;
  for (i = 0, nelm = 1; i < dim; i++) {
    sprintf(s1, "SIZE%d", i + 1);
    gethd(s1, s, *head);
    if (*s == 0 || sscanf(s, "%d", &axis[i]) != 1) {
      if (filec_debug)
        printf("Error reading %s\n", s1);
      goto close;
    }
    nelm *= axis[i];
  }
  gethd("BYTE_ORDER", s, *head);
  if (*s) {
    if (strcmp(s, "little_endian") == 0)
      bo = 0;
    else if (strcmp(s, "big_endian") == 0)
      bo = 1;
    else {
      istat = -4;
      goto close;
    }
  } else
    bo = -1;
  gethd("TYPE", s, *head);
  if (filec_debug) {
    printf("Type >%s<\n", s);
    printf("Image size (%d)", dim);
    for (i = 0; i < dim; i++)
      printf(" %d ", axis[i]);
    printf("\n");
    printf("Number of elements : %d\n", nelm);
    if (bo)
      printf("Byte order : big_endian\n");
    else
      printf("Byte order : little_endian\n");
  }
  if (strcmp(s, "unsigned_byte") == 0 || strcmp(s, "byte") == 0 || strcmp(s, "unsigned_char") == 0 || strcmp(s, "char") == 0) {
    int i;
    unsigned char *char_array, *cp;
    unsigned short *ap;
    if (filec_debug)
      printf("Reading byte image\n");
    readl = nelm * sizeof(char);
    char_array = malloc(readl);
    if (filec_debug) {
      printf("Allocating %d bytes for byte image\n", readl);
      printf("Reading unsigned byte image\n");
    }
    dskbr_(&lun, (char *)char_array, &readl, &istat);
    if (filec_debug)
      printf("Read Byte Completion status : %d\n", istat);
    if (istat != 0) {
      istat = -2;
      goto close;
    }
    lflag = (1 == 1);
    dskbwr_(&lun, &lflag);
    if (filec_debug) {
      readl = nelm * sizeof(unsigned short);
      printf("Allocating %d bytes for short image\n", readl);
    }
    *array = malloc(nelm * sizeof(unsigned short));
    *type = 4;
    ap = (unsigned short *)*array;
    cp = char_array;
    if (filec_debug)
      printf("Converting %d bytes to short image\n", nelm);
    for (i = 0; i < nelm; i++)
      *ap++ = *cp++;
    free(char_array);
  } else if (strcmp(s, "bit") == 0) {
    int i;
    unsigned char *bit_array, *bp;
    unsigned short *ap;
    if (filec_debug)
      printf("Reading bit image\n");
    readl = nelm * sizeof(char) / 8;
    bit_array = malloc(readl);
    if (filec_debug)
      printf("Reading bit image\n");
    dskbr_(&lun, (char *)bit_array, &readl, &istat);
    if (filec_debug)
      printf("Read Completion status : %d\n", istat);
    if (istat != 0) {
      istat = -2;
      goto close;
    }
    lflag = (1 == 1);
    dskbwr_(&lun, &lflag);
    *array = malloc(nelm * sizeof(unsigned short));
    *type = 4;
    ap = (unsigned short *)*array;
    bp = bit_array;
    for (i = 0; i < nelm; i += 8) {
      for (j = 0; j < 8; j++)
        *ap++ = *bp & 2 << j;
      bp++;
    }
    free(bit_array);
  } else if (strcmp(s, "mad") == 0 || strcmp(s, "unsigned_short") == 0) {
    if (filec_debug)
      printf("Reading unsigned short image\n");
    readl = nelm * sizeof(unsigned short);
    if (filec_debug) {
      printf("Reading unsigned short image\n");
      printf("Allocating %d bytes\n", readl);
    }
    *array = malloc(readl);
    *type = 4;
    dskbr_(&lun, *array, &readl, &istat);
    if (filec_debug)
      printf("Read Completion status : %d\n", istat);
    if (istat != 0) {
      istat = -2;
      goto close;
    }
    lflag = (1 == 1);
    dskbwr_(&lun, &lflag);
    if (bo != getbo()) {
      if (filec_debug)
        printf("Swapping bytes\n");
      swpbyt(0, readl, *array);
    }
  } else if (strcmp(s, "long") == 0 || strcmp(s, "long_integer") == 0 || strcmp(s, "signed_long") == 0) {
    if (filec_debug)
      printf("Reading long image\n");
    readl = nelm * sizeof(int);
    if (filec_debug) {
      printf("Reading signed long image\n");
      printf("Allocating %d bytes\n", readl);
    }
    *array = malloc(readl);
    *type = 5;
    dskbr_(&lun, *array, &readl, &istat);
    if (filec_debug)
      printf("Read Completion status : %d\n", istat);
    if (istat != 0) {
      istat = -2;
      goto close;
    }
    lflag = (1 == 1);
    dskbwr_(&lun, &lflag);
    if (bo != getbo()) {
      if (filec_debug)
        printf("Swapping bytes\n");
      swpbyt(1, readl, *array);
    }
  } else if (strcmp(s, "float") == 0 || strcmp(s, "ieee_float") == 0) {
    if (filec_debug)
      printf("Reading float image\n");
    readl = nelm * sizeof(float);
    if (filec_debug) {
      printf("Reading float image\n");
      printf("Allocating %d bytes\n", readl);
    }
    *array = malloc(readl);
    *type = 7;
    dskbr_(&lun, *array, &readl, &istat);
    if (filec_debug)
      printf("Read Completion status : %d\n", istat);
    if (istat != 0) {
      istat = -2;
      goto close;
    }
    lflag = (1 == 1);
    dskbwr_(&lun, &lflag);
    if (bo != getbo()) {
      if (filec_debug)
        printf("Swapping bytes\n");
      swpbyt(1, readl, *array);
    }
  } else if (strcmp(s, "complex") == 0 || strcmp(s, "ieee_complex") == 0) {
    if (filec_debug)
      printf("Reading complex image\n");
    readl = nelm * 2 * sizeof(float);
    if (filec_debug) {
      printf("Reading complex image\n");
      printf("Allocating %d bytes\n", readl);
    }
    *array = malloc(readl);
    *type = 9;
    dskbr_(&lun, *array, &readl, &istat);
    if (filec_debug)
      printf("Read Completion status : %d\n", istat);
    if (istat != 0) {
      istat = -2;
      goto close;
    }
    lflag = (1 == 1);
    dskbwr_(&lun, &lflag);
    if (bo != getbo()) {
      if (filec_debug)
        printf("Swapping bytes\n");
      swpbyt(1, readl, *array);
    }
  } else if (strcmp(s, "swap_rlmsb") == 0) {
    unsigned char lsb[10 * 1024], msb[10 * 1024];
    unsigned char *lp, *mp, *alp, *amp;
    int lstart = 0, mstart = 0;
    int llen, n, val;
    int is1 = axis[0], is2 = axis[1];
    if (filec_debug)
      printf("Reading compressed image\n");
    if (dim != 2)
      goto close;
    readl = nelm * sizeof(unsigned short);
    *array = malloc(readl);
    bo = getbo();
    if (bo == 0) {
      lstart = 0;
      mstart = 1;
    } else if (bo == 1) {
      lstart = 1;
      mstart = 0;
    }
    llen = 2;
    dskbr_(&lun, (char *)lsb, &llen, &istat);
    if (istat != 0) {
      istat = -2;
      goto close;
    }
    llen = (int)lsb[llen - 2] * 256 + lsb[llen - 1];
    for (j = 0; j < (is2 - 1); j++) {
      if (filec_debug)
        printf("Reading %d bytes\n", llen);
      dskbr_(&lun, (char *)lsb, &llen, &istat);
      if (istat != 0) {
        istat = -2;
        goto close;
      }
      if (filec_debug)
        printf("Uncompressing %d bytes\n", llen - (is1)-2);
      for (lp = lsb + (is1), mp = msb; lp < lsb + llen - 2;) {
        n = *lp++;
        val = *lp++;
        if (filec_debug && 0)
          printf("Line %d, n %d, val %d\n", j, n, val);
        for (i = 0; i < n; i++)
          *mp++ = val;
      }
      if (filec_debug)
        printf("Restored %d bytes in MSB\n", mp - msb);
      alp = (unsigned char *)*array + 2 * j * is1 + lstart;
      amp = (unsigned char *)*array + 2 * j * is1 + mstart;
      for (lp = lsb, mp = msb; lp < lsb + (is1); alp += 2, amp += 2) {
        *alp = *lp++;
        *amp = *mp++;
      }
      if (filec_debug) {
        printf("Done line %d\n", j);
        printf("=================================\n");
      }
      llen = (int)lsb[llen - 2] * 256 + lsb[llen - 1];
    }
    llen -= 2;
    dskbr_(&lun, (char *)lsb, &llen, &istat);
    if (istat != 0) {
      istat = -2;
      goto close;
    }
    for (lp = lsb + (is1), mp = msb; lp < lsb + llen;) {
      n = *lp++;
      val = *lp++;
      if (filec_debug && 0)
        printf("Line %d, n %d, val %d\n", j, n, val);
      for (i = 0; i < n; i++)
        *mp++ = val;
    }
    if (filec_debug)
      printf("Restored %d bytes in MSB\n", mp - msb);
    alp = (unsigned char *)*array + 2 * j * is1 + lstart;
    amp = (unsigned char *)*array + 2 * j * is1 + mstart;
    for (lp = lsb, mp = msb; lp < lsb + (is1); alp += 2, amp += 2) {
      *alp = *lp++;
      *amp = *mp++;
    }
    if (filec_debug) {
      printf("Done line %d\n", j);
      printf("===================================\n");
    }
    puthd("TYPE", "unsigned_short", *head);
    *type = 4;
  } else {
    if (filec_debug)
      printf("Unsupported Filetype\n");
    istat = -4;
    goto close;
  }
close:
  if (filec_debug)
    printf("Done reading file\n");
  if (istat) {
    dskbcr_(&lun, &i);
    if (*head != 0)
      free(*head);
    if (*array != 0)
      free(*array);
  } else
    dskbcr_(&lun, &istat);
  if (filec_debug)
    printf("RDSMV completion status %d\n", istat);
  return istat;
}
```