user: 请从给定的汇编指令推导出C源代码：

```asm
<help>:
  endbr64
  sub    $0x8,%rsp
  test   %edi,%edi
  je     L9
  cmp    $0x1,%edi
  je     L1
  add    $0x8,%rsp
  ret
  nopw   0x0(%rax,%rax,1)
L9:
  lea    D153(%rip),%rdi
  call   <printf@plt>
  lea    D70(%rip),%rdi
  call   <printf@plt>
  lea    D365(%rip),%rdi
  call   <printf@plt>
  lea    D50(%rip),%rdi
  call   <printf@plt>
  lea    D266(%rip),%rdi
  call   <printf@plt>
  lea    D223(%rip),%rdi
  call   <printf@plt>
  lea    D154(%rip),%rdi
  call   <printf@plt>
  lea    D206(%rip),%rdi
  call   <printf@plt>
  lea    D29(%rip),%rdi
  call   <printf@plt>
  lea    D361(%rip),%rdi
  call   <printf@plt>
  lea    D271(%rip),%rdi
  call   <printf@plt>
  lea    D149(%rip),%rdi
  call   <printf@plt>
  lea    D92(%rip),%rdi
  call   <printf@plt>
  lea    D325(%rip),%rdi
  call   <printf@plt>
  lea    D202(%rip),%rdi
  call   <printf@plt>
  lea    D203(%rip),%rdi
  call   <printf@plt>
  lea    D86(%rip),%rdi
  call   <printf@plt>
  lea    D66(%rip),%rdi
  call   <printf@plt>
  lea    D233(%rip),%rdi
  call   <printf@plt>
  lea    D241(%rip),%rdi
  add    $0x8,%rsp
  jmp    1050 <printf@plt>
  nopl   0x0(%rax)
L1:
  lea    D80(%rip),%rdi
  call   <printf@plt>
  lea    D304(%rip),%rdi
  call   <printf@plt>
  lea    D246(%rip),%rdi
  call   <printf@plt>
  lea    D265(%rip),%rdi
  call   <printf@plt>
  lea    D318(%rip),%rdi
  call   <printf@plt>
  lea    D187(%rip),%rdi
  call   <printf@plt>
  lea    D289(%rip),%rdi
  call   <printf@plt>
  lea    D175(%rip),%rdi
  call   <printf@plt>
  lea    D298(%rip),%rdi
  call   <printf@plt>
  lea    D359(%rip),%rdi
  call   <printf@plt>
  lea    D317(%rip),%rdi
  call   <printf@plt>
  lea    D93(%rip),%rdi
  call   <printf@plt>
  lea    D28(%rip),%rdi
  call   <printf@plt>
  lea    D37(%rip),%rdi
  call   <printf@plt>
  lea    D146(%rip),%rdi
  call   <printf@plt>
  lea    D84(%rip),%rdi
  call   <printf@plt>
  lea    D141(%rip),%rdi
  add    $0x8,%rsp
  jmp    1050 <printf@plt>
```

tool_calls: name: unpack_data
arguments: tag: D153
type_guessed: string
name: unpack_data
arguments: tag: D70
type_guessed: string
name: unpack_data
arguments: tag: D365
type_guessed: string
name: unpack_data
arguments: tag: D50
type_guessed: string
name: unpack_data
arguments: tag: D266
type_guessed: string
name: unpack_data
arguments: tag: D223
type_guessed: string
name: unpack_data
arguments: tag: D154
type_guessed: string
name: unpack_data
arguments: tag: D206
type_guessed: string
name: unpack_data
arguments: tag: D29
type_guessed: string
name: unpack_data
arguments: tag: D361
type_guessed: string
name: unpack_data
arguments: tag: D271
type_guessed: string
name: unpack_data
arguments: tag: D149
type_guessed: string
name: unpack_data
arguments: tag: D92
type_guessed: string
name: unpack_data
arguments: tag: D325
type_guessed: string
name: unpack_data
arguments: tag: D202
type_guessed: string
name: unpack_data
arguments: tag: D203
type_guessed: string
name: unpack_data
arguments: tag: D86
type_guessed: string
name: unpack_data
arguments: tag: D66
type_guessed: string
name: unpack_data
arguments: tag: D233
type_guessed: string
name: unpack_data
arguments: tag: D241
type_guessed: string
name: unpack_data
arguments: tag: D80
type_guessed: string
name: unpack_data
arguments: tag: D304
type_guessed: string
name: unpack_data
arguments: tag: D246
type_guessed: string
name: unpack_data
arguments: tag: D265
type_guessed: string
name: unpack_data
arguments: tag: D318
type_guessed: string
name: unpack_data
arguments: tag: D187
type_guessed: string
name: unpack_data
arguments: tag: D289
type_guessed: string
name: unpack_data
arguments: tag: D175
type_guessed: string
name: unpack_data
arguments: tag: D298
type_guessed: string
name: unpack_data
arguments: tag: D359
type_guessed: string
name: unpack_data
arguments: tag: D317
type_guessed: string
name: unpack_data
arguments: tag: D93
type_guessed: string
name: unpack_data
arguments: tag: D28
type_guessed: string
name: unpack_data
arguments: tag: D37
type_guessed: string
name: unpack_data
arguments: tag: D146
type_guessed: string
name: unpack_data
arguments: tag: D84
type_guessed: string
name: unpack_data
arguments: tag: D141
type_guessed: string

tool: D153: Standard commands:


tool: D70:   a                  = again (repeat last command)


tool: D365:   m-,m,m+            = vga mode


tool: D50:   s-,s,s+            = tv standard


tool: D266:   e                  = enable tvout


tool: D223:   d                  = disable tvout


tool: D154:   b,b--,b-,b+,b++    = brightness


tool: D206:   c,c--,c-,c+,c++    = contrast


tool: D29:   o,o--,o-,o+,o++    = color


tool: D361:   f,f--,f-,f+,f++    = flicker


tool: D271:   n,n--,n-,n+,n++    = sharpness


tool: D149:   l,l-,l0,l+         = left position


tool: D92:   t,t-,t0,t+         = top position


tool: D325:   w,w-,w0,w+         = width


tool: D202:   h,h-,h0,h+         = height


tool: D203:   g                  = get video parameters


tool: D86:   def                = default settings


tool: D66:   q                  = quit


tool: D233:   ?                  = standard commands (display this message)


tool: D241:   ??                 = advanced commands


tool: D80: Advanced commands:


tool: D304:   rg                      = register dump: graphics controller


tool: D246:   rg [reg] [size]         = read Graphics controller register


tool: D265:   Rg [reg] [value] [size] = write Graphics controller register


tool: D318:   rs                      = register dump: SIO


tool: D187:   rs [reg] [size]         = read SIO register


tool: D289:   Rs [reg] [value] [size] = write SIO register


tool: D175:   rsv, rss, rse           = register dump: VGA-TV, scaler, encoder


tool: D298:   rvc,rvl,rvm             = register dump: VP config, VP layer, VP move


tool: D359:   rv [reg] [size]         = read VP register


tool: D317:   Rv [reg] [value] [size] = write VP register


tool: D93:   rl                      = register dump: LPC


tool: D28:   rl [reg] [size]         = read LPC register


tool: D37:   Rl [reg] [value] [size] = write LPC register


tool: D146:   <,>                     = dec, inc FFO_LAT


tool: D84:   ?                       = standard commands


tool: D141:   ??                      = advanced commands (display this message)


assistant: ```c
void help(int level) {
  switch (level) {
  case 0: {
    printf("Standard commands:\n");
    printf("  a                  = again (repeat last command)\n");
    printf("  m-,m,m+            = vga mode\n");
    printf("  s-,s,s+            = tv standard\n");
    printf("  e                  = enable tvout\n");
    printf("  d                  = disable tvout\n");
    printf("  b,b--,b-,b+,b++    = brightness\n");
    printf("  c,c--,c-,c+,c++    = contrast\n");
    printf("  o,o--,o-,o+,o++    = color\n");
    printf("  f,f--,f-,f+,f++    = flicker\n");
    printf("  n,n--,n-,n+,n++    = sharpness\n");
    printf("  l,l-,l0,l+         = left position\n");
    printf("  t,t-,t0,t+         = top position\n");
    printf("  w,w-,w0,w+         = width\n");
    printf("  h,h-,h0,h+         = height\n");
    printf("  g                  = get video parameters\n");
    printf("  def                = default settings\n");
    printf("  q                  = quit\n");
    printf("  ?                  = standard commands (display this message)\n");
    printf("  ??                 = advanced commands\n");
  } break;
  case 1: {
    printf("Advanced commands:\n");
    printf("  rg                      = register dump: graphics controller\n");
    printf("  rg [reg] [size]         = read Graphics controller register\n");
    printf("  Rg [reg] [value] [size] = write Graphics controller register\n");
    printf("  rs                      = register dump: SIO\n");
    printf("  rs [reg] [size]         = read SIO register\n");
    printf("  Rs [reg] [value] [size] = write SIO register\n");
    printf("  rsv, rss, rse           = register dump: VGA-TV, scaler, encoder\n");
    printf("  rvc,rvl,rvm             = register dump: VP config, VP layer, VP move\n");
    printf("  rv [reg] [size]         = read VP register\n");
    printf("  Rv [reg] [value] [size] = write VP register\n");
    printf("  rl                      = register dump: LPC\n");
    printf("  rl [reg] [size]         = read LPC register\n");
    printf("  Rl [reg] [value] [size] = write LPC register\n");
    printf("  <,>                     = dec, inc FFO_LAT\n");
    printf("  ?                       = standard commands\n");
    printf("  ??                      = advanced commands (display this message)\n");
  } break;
  }
}
```