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

```asm
<tst_screen>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x28,%rsp
  mov    $0x1,%esi
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D841(%rip),%rdi
  mov    $0x0,%eax
  call   <sm@plt>
  mov    $0xa0,%ebx
L152:
  mov    $0x2a,%edi
  call   <putchar@plt>
  sub    $0x1,%ebx
  jne    L152
  lea    D841(%rip),%rdi
  mov    $0x0,%eax
  call   <rm@plt>
  mov    $0x1,%esi
  mov    $0x3,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  mov    $0xa0,%ebx
L332:
  mov    $0x2a,%edi
  call   <putchar@plt>
  sub    $0x1,%ebx
  jne    L332
  lea    D841(%rip),%rdi
  mov    $0x0,%eax
  call   <sm@plt>
  mov    $0x1,%esi
  mov    $0x5,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D334(%rip),%rdi
  mov    $0x0,%eax
  call   <println@plt>
  lea    D529(%rip),%rdi
  mov    $0x0,%eax
  call   <println@plt>
  lea    D57(%rip),%rdi
  mov    $0x0,%eax
  call   <println@plt>
  mov    $0x0,%eax
  call   <holdit@plt>
  mov    $0x2,%edi
  mov    $0x0,%eax
  call   <ed@plt>
  mov    $0x3,%edi
  mov    $0x0,%eax
  call   <tbc@plt>
  mov    $0x1,%esi
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  mov    $0x1a,%ebx
L109:
  mov    $0x3,%edi
  mov    $0x0,%eax
  call   <cuf@plt>
  mov    $0x0,%eax
  call   <hts@plt>
  sub    $0x1,%ebx
  jne    L109
  mov    $0x4,%esi
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  mov    $0xd,%ebx
L243:
  mov    $0x0,%edi
  mov    $0x0,%eax
  call   <tbc@plt>
  mov    $0x6,%edi
  mov    $0x0,%eax
  call   <cuf@plt>
  sub    $0x1,%ebx
  jne    L243
  mov    $0x7,%esi
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <tbc@plt>
  mov    $0x2,%edi
  mov    $0x0,%eax
  call   <tbc@plt>
  mov    $0x1,%esi
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  mov    $0xd,%ebx
  lea    D624(%rip),%rbp
L301:
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  sub    $0x1,%ebx
  jne    L301
  mov    $0x2,%esi
  mov    $0x2,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  mov    $0xd,%ebx
  lea    D805(%rip),%rbp
L250:
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  sub    $0x1,%ebx
  jne    L250
  mov    $0x1,%esi
  mov    $0x4,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D843(%rip),%rdi
  mov    $0x0,%eax
  call   <println@plt>
  lea    D711(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  call   <holdit@plt>
  mov    $0x0,%r13d
  lea    D571(%rip),%r14
  lea    D762(%rip),%r12
  jmp    L174
L321:
  lea    D852(%rip),%rdi
  mov    $0x0,%eax
  call   <sm@plt>
L50:
  mov    %r14,%rdi
  mov    $0x0,%eax
  call   <sm@plt>
  mov    $0x2,%edi
  mov    $0x0,%eax
  call   <ed@plt>
  mov    $0x1,%esi
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  mov    $0x3,%edi
  mov    $0x0,%eax
  call   <tbc@plt>
  mov    $0x11,%ebx
L118:
  mov    $0x8,%edi
  mov    $0x0,%eax
  call   <cuf@plt>
  mov    $0x0,%eax
  call   <hts@plt>
  sub    $0x1,%ebx
  jne    L118
  mov    $0x1,%esi
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  mov    $0xd,%ebx
L336:
  mov    %r12,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  sub    $0x1,%ebx
  jne    L336
  lea    D655(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  test   %r13d,%r13d
  lea    D886(%rip),%rbp
  lea    D829(%rip),%rax
  cmove  %rax,%rbp
  mov    $0x3,%ebx
  lea    D776(%rip),%r15
L99:
  mov    %ebx,%esi
  mov    %ebx,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  mov    %rbp,%rsi
  mov    %r15,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  add    $0x1,%ebx
  cmp    $0x15,%ebx
  jne    L99
  mov    $0x0,%eax
  call   <holdit@plt>
  mov    %r14,%rdi
  mov    $0x0,%eax
  call   <rm@plt>
  mov    $0x2,%edi
  mov    $0x0,%eax
  call   <ed@plt>
  mov    $0x1,%esi
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  mov    $0x8,%ebx
L173:
  mov    %r12,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  sub    $0x1,%ebx
  jne    L173
  mov    $0x3,%ebx
  lea    D500(%rip),%r15
L307:
  mov    %ebx,%esi
  mov    %ebx,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  mov    %rbp,%rsi
  mov    %r15,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  add    $0x1,%ebx
  cmp    $0x15,%ebx
  jne    L307
  mov    $0x0,%eax
  call   <holdit@plt>
  add    $0x1,%r13d
  cmp    $0x2,%r13d
  je     L115
L174:
  test   %r13d,%r13d
  je     L321
  lea    D852(%rip),%rdi
  mov    $0x0,%eax
  call   <rm@plt>
  jmp    L50
L115:
  mov    $0x2,%edi
  mov    $0x0,%eax
  call   <ed@plt>
  lea    D584(%rip),%rdi
  mov    $0x0,%eax
  call   <sm@plt>
  mov    $0xffffffff,%r15d
  jmp    L38
L163:
  lea    D351(%rip),%rdi
  mov    $0x0,%eax
  call   <rm@plt>
  jmp    L266
L70:
  mov    $0x18,%edi
  mov    $0x0,%eax
  call   <cud@plt>
  jmp    L101
L278:
  test   %r15d,%r15d
  lea    D163(%rip),%rsi
  cmovne %r13,%rsi
  mov    %ebx,%r8d
  mov    %r14d,%ecx
  lea    D719(%rip),%rdx
  mov    %r12,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L310
L200:
  sub    $0x1,%ebp
  cmp    $0xfffffffe,%ebp
  je     L359
L190:
  test   %ebp,%ebp
  je     L70
  mov    $0x18,%edi
  mov    $0x0,%eax
  call   <cuu@plt>
L101:
  test   %ebp,%ebp
  lea    D719(%rip),%rax
  lea    D121(%rip),%rdx
  cmovne %rdx,%rax
  mov    %rax,0x8(%rsp)
  mov    $0x1,%ebx
  lea    D814(%rip),%r12
  lea    D323(%rip),%r13
  jmp    L353
L359:
  mov    $0x0,%eax
  call   <holdit@plt>
  subl   $0xb,0x10(%rsp)
  mov    0x10(%rsp),%eax
  cmp    $0xfffffff6,%eax
  je     L333
L82:
  mov    $0x19,%esi
  mov    0x10(%rsp),%ebx
  sub    %ebx,%esi
  mov    %ebx,%edi
  mov    $0x0,%eax
  call   <decstbm@plt>
  mov    $0x2,%edi
  mov    $0x0,%eax
  call   <ed@plt>
  mov    %ebx,%eax
  neg    %eax
  lea    0x1a(%rax,%rax,1),%r14d
  mov    $0x0,%ebp
  jmp    L190
L333:
  add    $0x1,%r15d
  cmp    $0x1,%r15d
  je     L323
L38:
  test   %r15d,%r15d
  je     L163
  lea    D351(%rip),%rdi
  mov    $0x0,%eax
  call   <sm@plt>
L266:
  movl   $0xc,0x10(%rsp)
  jmp    L82
L323:
  mov    $0x2,%edi
  mov    $0x0,%eax
  call   <ed@plt>
  mov    $0x18,%esi
  mov    $0x17,%edi
  mov    $0x0,%eax
  call   <decstbm@plt>
  lea    D620(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D538(%rip),%rsi
  lea    D415(%rip),%rbx
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  call   <holdit@plt>
  mov    $0x2,%edi
  mov    $0x0,%eax
  call   <ed@plt>
  lea    D584(%rip),%rdi
  mov    $0x0,%eax
  call   <rm@plt>
  mov    $0x1,%esi
  mov    $0x18,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D423(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D664(%rip),%rsi
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  call   <holdit@plt>
  mov    $0x18,%esi
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <decstbm@plt>
  mov    $0x2,%edi
  mov    $0x0,%eax
  call   <ed@plt>
  mov    $0x14,%esi
  mov    $0x1,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D119(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0x4,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D223(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D329(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x28,%esi
  mov    $0x4,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D305(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D141(%rip),%rbp
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x6,%esi
  mov    $0x6,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D237(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D422(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x2d,%esi
  mov    $0x6,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D569(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D125(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D512(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0x8,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D604(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D459(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x28,%esi
  mov    $0x8,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D309(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D661(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x6,%esi
  mov    $0xa,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D713(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D466(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x2d,%esi
  mov    $0xa,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D602(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D717(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0xc,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D210(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D865(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x28,%esi
  mov    $0xc,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D541(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D614(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x6,%esi
  mov    $0xe,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D710(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D850(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x2d,%esi
  mov    $0xe,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D860(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D623(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0x10,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D654(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D468(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x28,%esi
  mov    $0x10,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D374(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D863(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x6,%esi
  mov    $0x12,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D505(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D310(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x2d,%esi
  mov    $0x12,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D725(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D65(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D113(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  lea    D852(%rip),%rbx
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <rm@plt>
  mov    $0x1,%esi
  mov    $0x17,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  mov    $0x0,%edi
  mov    $0x0,%eax
  call   <el@plt>
  lea    D298(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  call   <holdit@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <sm@plt>
  mov    $0x1,%esi
  mov    $0x17,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  mov    $0x0,%edi
  mov    $0x0,%eax
  call   <el@plt>
  lea    D748(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  call   <holdit@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <rm@plt>
  mov    $0x2,%edi
  mov    $0x0,%eax
  call   <ed@plt>
  mov    $0xc,%esi
  mov    $0x8,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D644(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x18,%esi
  mov    $0x8,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x24,%esi
  mov    $0x8,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D784(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x30,%esi
  mov    $0x8,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D736(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x3c,%esi
  mov    $0x8,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D832(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0xa,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D496(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0xc,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D137(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0xe,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D53(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  mov    $0x10,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D195(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D501(%rip),%r13
  movq   $0x1,0x18(%rsp)
  lea    D168(%rip),%r15
  jmp    L280
L293:
  mov    $0x30,%esi
  mov    $0x0,%edi
  mov    $0x0,%eax
  call   <scs@plt>
L148:
  mov    $0x5,%ebx
L140:
  movsbl 0x0(%r13),%ebp
  mov    %ebp,%edi
  call   <putchar@plt>
  sub    $0x1,%ebx
  jne    L140
  mov    $0x0,%eax
  call   <decsc@plt>
  mov    0x8(%rsp),%esi
  mov    0x14(%rsp),%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D113(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  mov    $0x42,%esi
  mov    $0x0,%edi
  mov    $0x0,%eax
  call   <scs@plt>
  mov    $0x41,%edi
  call   <putchar@plt>
  mov    $0x0,%eax
  call   <decrc@plt>
  mov    $0x5,%ebx
L201:
  mov    %ebp,%edi
  call   <putchar@plt>
  sub    $0x1,%ebx
  jne    L201
  add    $0x1,%r12
  cmp    $0x6,%r12
  je     L161
L74:
  mov    %r12d,0x8(%rsp)
  lea    (%r12,%r12,2),%esi
  shl    $0x2,%esi
  mov    0x10(%rsp),%edi
  mov    $0x0,%eax
  call   <cup@plt>
  mov    (%r15,%r12,8),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  test   %r14d,%r14d
  jne    L293
  mov    $0x42,%esi
  mov    $0x0,%edi
  mov    $0x0,%eax
  call   <scs@plt>
  jmp    L148
L161:
  addq   $0x1,0x18(%rsp)
  mov    0x18(%rsp),%rax
  add    $0x1,%r13
  cmp    $0x5,%rax
  je     L265
L280:
  mov    0x18(%rsp),%rax
  lea    -0x1(%rax),%r14d
  lea    0x8(%rax,%rax,1),%ecx
  mov    %ecx,0x10(%rsp)
  mov    $0x1,%r12d
  and    $0xfffffffd,%r14d
  mov    %eax,0x14(%rsp)
  jmp    L74
L29:
  mov    %ebx,%r8d
  mov    %r14d,%ecx
  lea    D121(%rip),%rdx
  mov    %r13,%rsi
  mov    %r12,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L302:
  mov    $0x0,%eax
  call   <ri@plt>
  mov    $0x0,%eax
  call   <ri@plt>
L310:
  add    $0x1,%ebx
  cmp    $0x1f,%ebx
  je     L200
L353:
  test   %ebp,%ebp
  je     L278
  test   %r15d,%r15d
  jne    L29
  mov    %ebx,%r8d
  mov    %r14d,%ecx
  mov    0x8(%rsp),%rdx
  lea    D163(%rip),%rsi
  mov    %r12,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L302
L265:
  lea    D223(%rip),%rdi
  mov    $0x0,%eax
  call   <sgr@plt>
  mov    $0x42,%esi
  mov    $0x0,%edi
  mov    $0x0,%eax
  call   <scs@plt>
  mov    $0x1,%esi
  mov    $0x15,%edi
  mov    $0x0,%eax
  call   <cup@plt>
  lea    D743(%rip),%rdi
  mov    $0x0,%eax
  call   <println@plt>
  lea    D447(%rip),%rdi
  mov    $0x0,%eax
  call   <println@plt>
  lea    D266(%rip),%rdi
  mov    $0x0,%eax
  call   <println@plt>
  mov    $0x0,%eax
  call   <holdit@plt>
  mov    $0x0,%eax
  add    $0x28,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

tool_calls: name: disassemble_data
arguments: tag: D841
data_type: string
name: disassemble_data
arguments: tag: D334
data_type: string
name: disassemble_data
arguments: tag: D529
data_type: string
name: disassemble_data
arguments: tag: D57
data_type: string
name: disassemble_data
arguments: tag: D624
data_type: string
name: disassemble_data
arguments: tag: D805
data_type: string
name: disassemble_data
arguments: tag: D843
data_type: string
name: disassemble_data
arguments: tag: D711
data_type: string
name: disassemble_data
arguments: tag: D571
data_type: string
name: disassemble_data
arguments: tag: D762
data_type: string
name: disassemble_data
arguments: tag: D852
data_type: string
name: disassemble_data
arguments: tag: D655
data_type: string
name: disassemble_data
arguments: tag: D886
data_type: string
name: disassemble_data
arguments: tag: D829
data_type: string
name: disassemble_data
arguments: tag: D776
data_type: string
name: disassemble_data
arguments: tag: D500
data_type: string
name: disassemble_data
arguments: tag: D584
data_type: string
name: disassemble_data
arguments: tag: D351
data_type: string
name: disassemble_data
arguments: tag: D163
data_type: string
name: disassemble_data
arguments: tag: D719
data_type: string
name: disassemble_data
arguments: tag: D121
data_type: string
name: disassemble_data
arguments: tag: D814
data_type: string
name: disassemble_data
arguments: tag: D323
data_type: string
name: disassemble_data
arguments: tag: D620
data_type: string
name: disassemble_data
arguments: tag: D538
data_type: string
name: disassemble_data
arguments: tag: D415
data_type: string
name: disassemble_data
arguments: tag: D423
data_type: string
name: disassemble_data
arguments: tag: D664
data_type: string
name: disassemble_data
arguments: tag: D119
data_type: string
name: disassemble_data
arguments: tag: D223
data_type: string
name: disassemble_data
arguments: tag: D329
data_type: string
name: disassemble_data
arguments: tag: D305
data_type: string
name: disassemble_data
arguments: tag: D141
data_type: string
name: disassemble_data
arguments: tag: D237
data_type: string
name: disassemble_data
arguments: tag: D422
data_type: string
name: disassemble_data
arguments: tag: D569
data_type: string
name: disassemble_data
arguments: tag: D125
data_type: string
name: disassemble_data
arguments: tag: D512
data_type: string
name: disassemble_data
arguments: tag: D604
data_type: string
name: disassemble_data
arguments: tag: D459
data_type: string
name: disassemble_data
arguments: tag: D309
data_type: string
name: disassemble_data
arguments: tag: D661
data_type: string
name: disassemble_data
arguments: tag: D713
data_type: string
name: disassemble_data
arguments: tag: D466
data_type: string
name: disassemble_data
arguments: tag: D602
data_type: string
name: disassemble_data
arguments: tag: D717
data_type: string
name: disassemble_data
arguments: tag: D210
data_type: string
name: disassemble_data
arguments: tag: D865
data_type: string
name: disassemble_data
arguments: tag: D541
data_type: string
name: disassemble_data
arguments: tag: D614
data_type: string
name: disassemble_data
arguments: tag: D710
data_type: string
name: disassemble_data
arguments: tag: D850
data_type: string
name: disassemble_data
arguments: tag: D860
data_type: string
name: disassemble_data
arguments: tag: D623
data_type: string
name: disassemble_data
arguments: tag: D654
data_type: string
name: disassemble_data
arguments: tag: D468
data_type: string
name: disassemble_data
arguments: tag: D374
data_type: string
name: disassemble_data
arguments: tag: D863
data_type: string
name: disassemble_data
arguments: tag: D505
data_type: string
name: disassemble_data
arguments: tag: D310
data_type: string
name: disassemble_data
arguments: tag: D725
data_type: string
name: disassemble_data
arguments: tag: D65
data_type: string
name: disassemble_data
arguments: tag: D113
data_type: string
name: disassemble_data
arguments: tag: D298
data_type: string
name: disassemble_data
arguments: tag: D748
data_type: string
name: disassemble_data
arguments: tag: D644
data_type: string
name: disassemble_data
arguments: tag: D784
data_type: string
name: disassemble_data
arguments: tag: D736
data_type: string
name: disassemble_data
arguments: tag: D832
data_type: string
name: disassemble_data
arguments: tag: D496
data_type: string
name: disassemble_data
arguments: tag: D137
data_type: string
name: disassemble_data
arguments: tag: D53
data_type: string
name: disassemble_data
arguments: tag: D195
data_type: string
name: disassemble_data
arguments: tag: D501
data_type: string
name: disassemble_data
arguments: tag: D743
data_type: string
name: disassemble_data
arguments: tag: D447
data_type: string
name: disassemble_data
arguments: tag: D266
data_type: string

tool: D841: ?7

tool: D334: This should be three identical lines of *'s completely filling

tool: D529: the top of the screen without any empty lines between.

tool: D57: (Test of WRAP AROUND mode setting.)

tool: D624: 	*

tool: D805:      *

tool: D843: Test of TAB setting/resetting. These two lines

tool: D711: should look the same. 

tool: D571: ?3

tool: D762: 1234567890

tool: D852: ?5

tool: D655: 12

tool: D886: dark

tool: D829: light

tool: D776: This is 132 column mode, %s background.

tool: D500: This is 80 column mode, %s background.

tool: D584: ?6

tool: D351: ?4

tool: D163: Jump

tool: D719: up

tool: D121: down

tool: D814: %s scroll %s region %d Line %d


tool: D323: Soft

tool: D620: 
Origin mode test. This line should be at the bottom of the screen.

tool: D538: This line should be the one above the bottom of the screeen. 

tool: D415: %s

tool: D423: Origin mode test. This line should be at the bottom of the screen.

tool: D664: This line should be at the top if the screen. 

tool: D119: Graphic rendition test pattern:

tool: D223: 0

tool: D329: vanilla

tool: D305: 0;1

tool: D141: bold

tool: D237: ;4

tool: D422: underline

tool: D569: ;1

tool: D125: 4

tool: D512: bold underline

tool: D604: 0;5

tool: D459: blink

tool: D309: 0;5;1

tool: D661: bold blink

tool: D713: 0;4;5

tool: D466: underline blink

tool: D602: 0;1;4;5

tool: D717: bold underline blink

tool: D210: 1;4;5;0;7

tool: D865: negative

tool: D541: 0;1;7

tool: D614: bold negative

tool: D710: 0;4;7

tool: D850: underline negative

tool: D860: 0;1;4;7

tool: D623: bold underline negative

tool: D654: 1;4;;5;7

tool: D468: blink negative

tool: D374: 0;1;5;7

tool: D863: bold blink negative

tool: D505: 0;4;5;7

tool: D310: underline blink negative

tool: D725: 0;1;4;5;7

tool: D65: bold underline blink negative

tool: 

tool: D298: Dark background. 

tool: D748: Light background. 

tool: D644: normal

tool: D784: underscored

tool: D736: blinking

tool: D832: reversed

tool: D496: stars:

tool: D137: line:

tool: D53: x'es:

tool: D195: diamonds:

tool: D501: *qx`

tool: D743: Test of the SAVE/RESTORE CURSOR feature. There should

tool: D447: be ten characters of each flavour, and a rectangle

tool: D266: of 5 x 4 A's filling the top left of the screen.

assistant: ```c
tst_screen() {
  int i, j, cset, row, col, down, soft, background;
  static char *tststr = "*qx`";
  static char *attr[5] = {";0", ";1", ";4", ";5", ";7"};
  cup(1, 1);
  sm("?7");
  for (col = 1; col <= 160; col++)
    printf("*");
  rm("?7");
  cup(3, 1);
  for (col = 1; col <= 160; col++)
    printf("*");
  sm("?7");
  cup(5, 1);
  println("This should be three identical lines of *'s completely filling");
  println("the top of the screen without any empty lines between.");
  println("(Test of WRAP AROUND mode setting.)");
  holdit();
  ed(2);
  tbc(3);
  cup(1, 1);
  for (col = 1; col <= 78; col += 3) {
    cuf(3);
    hts();
  }
  cup(1, 4);
  for (col = 4; col <= 78; col += 6) {
    tbc(0);
    cuf(6);
  }
  cup(1, 7);
  tbc(1);
  tbc(2);
  cup(1, 1);
  for (col = 1; col <= 78; col += 6)
    printf("\t*");
  cup(2, 2);
  for (col = 2; col <= 78; col += 6)
    printf("     *");
  cup(4, 1);
  println("Test of TAB setting/resetting. These two lines");
  printf("should look the same. ");
  holdit();
  for (background = 0; background <= 1; background++) {
    if (background)
      rm("?5");
    else
      sm("?5");
    sm("?3");
    ed(2);
    cup(1, 1);
    tbc(3);
    for (col = 1; col <= 132; col += 8) {
      cuf(8);
      hts();
    }
    cup(1, 1);
    for (col = 1; col <= 130; col += 10)
      printf("1234567890");
    printf("12");
    for (row = 3; row <= 20; row++) {
      cup(row, row);
      printf("This is 132 column mode, %s background.", background ? "dark" : "light");
    }
    holdit();
    rm("?3");
    ed(2);
    cup(1, 1);
    for (col = 1; col <= 80; col += 10)
      printf("1234567890");
    for (row = 3; row <= 20; row++) {
      cup(row, row);
      printf("This is 80 column mode, %s background.", background ? "dark" : "light");
    }
    holdit();
  }
  ed(2);
  sm("?6");
  for (soft = -1; soft <= 0; soft++) {
    if (soft)
      sm("?4");
    else
      rm("?4");
    for (row = 12; row >= 1; row -= 11) {
      decstbm(row, 24 - row + 1);
      ed(2);
      for (down = 0; down >= -1; down--) {
        if (down)
          cuu(24);
        else
          cud(24);
        for (i = 1; i <= 30; i++) {
          printf("%s scroll %s region %d Line %d\n", soft ? "Soft" : "Jump", down ? "down" : "up", 2 * (13 - row), i);
          if (down) {
            ri();
            ri();
          }
        }
      }
      holdit();
    }
  }
  ed(2);
  decstbm(23, 24);
  printf("\nOrigin mode test. This line should be at the bottom of the screen.");
  cup(1, 1);
  printf("%s", "This line should be the one above the bottom of the screeen. ");
  holdit();
  ed(2);
  rm("?6");
  cup(24, 1);
  printf("Origin mode test. This line should be at the bottom of the screen.");
  cup(1, 1);
  printf("%s", "This line should be at the top if the screen. ");
  holdit();
  decstbm(1, 24);
  ed(2);
  cup(1, 20);
  printf("Graphic rendition test pattern:");
  cup(4, 1);
  sgr("0");
  printf("vanilla");
  cup(4, 40);
  sgr("0;1");
  printf("bold");
  cup(6, 6);
  sgr(";4");
  printf("underline");
  cup(6, 45);
  sgr(";1");
  sgr("4");
  printf("bold underline");
  cup(8, 1);
  sgr("0;5");
  printf("blink");
  cup(8, 40);
  sgr("0;5;1");
  printf("bold blink");
  cup(10, 6);
  sgr("0;4;5");
  printf("underline blink");
  cup(10, 45);
  sgr("0;1;4;5");
  printf("bold underline blink");
  cup(12, 1);
  sgr("1;4;5;0;7");
  printf("negative");
  cup(12, 40);
  sgr("0;1;7");
  printf("bold negative");
  cup(14, 6);
  sgr("0;4;7");
  printf("underline negative");
  cup(14, 45);
  sgr("0;1;4;7");
  printf("bold underline negative");
  cup(16, 1);
  sgr("1;4;;5;7");
  printf("blink negative");
  cup(16, 40);
  sgr("0;1;5;7");
  printf("bold blink negative");
  cup(18, 6);
  sgr("0;4;5;7");
  printf("underline blink negative");
  cup(18, 45);
  sgr("0;1;4;5;7");
  printf("bold underline blink negative");
  sgr("");
  rm("?5");
  cup(23, 1);
  el(0);
  printf("Dark background. ");
  holdit();
  sm("?5");
  cup(23, 1);
  el(0);
  printf("Light background. ");
  holdit();
  rm("?5");
  ed(2);
  cup(8, 12);
  printf("normal");
  cup(8, 24);
  printf("bold");
  cup(8, 36);
  printf("underscored");
  cup(8, 48);
  printf("blinking");
  cup(8, 60);
  printf("reversed");
  cup(10, 1);
  printf("stars:");
  cup(12, 1);
  printf("line:");
  cup(14, 1);
  printf("x'es:");
  cup(16, 1);
  printf("diamonds:");
  for (cset = 0; cset <= 3; cset++) {
    for (i = 0; i <= 4; i++) {
      cup(10 + 2 * cset, 12 + 12 * i);
      sgr(attr[i]);
      if (cset == 0 || cset == 2)
        scs(0, 'B');
      else
        scs(0, '0');
      for (j = 0; j <= 4; j++) {
        printf("%c", tststr[cset]);
      }
      decsc();
      cup(cset + 1, i + 1);
      sgr("");
      scs(0, 'B');
      printf("A");
      decrc();
      for (j = 0; j <= 4; j++) {
        printf("%c", tststr[cset]);
      }
    }
  }
  sgr("0");
  scs(0, 'B');
  cup(21, 1);
  println("Test of the SAVE/RESTORE CURSOR feature. There should");
  println("be ten characters of each flavour, and a rectangle");
  println("of 5 x 4 A's filling the top left of the screen.");
  holdit();
}
```