user: 这段汇编代码用C语言表示是什么样的?

```asm
<prompt_loop>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xe0,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x8,-0xd8(%rbp)
  movl   $0x1,-0xd4(%rbp)
  movl   $0x0,-0xdc(%rbp)
  movl   $0x0,-0xe0(%rbp)
  jmp    L148
L187:
  mov    -0xe0(%rbp),%eax
  lea    -0xd0(%rbp),%rdx
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  lea    D80(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  mov    -0xe0(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xe0(%rbp)
L148:
  mov    -0xe0(%rbp),%eax
  cmp    %eax,-0xd8(%rbp)
  jg     L187
L18:
  lea    -0x90(%rbp),%rax
  mov    $0x80,%edx
  mov    %rax,%rsi
  lea    D138(%rip),%rax
  mov    %rax,%rdi
  call   <xreadline@plt>
  test   %rax,%rax
  je     L133
  lea    -0x90(%rbp),%rax
  lea    D113(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L71
  lea    D33(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D143(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D50(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D66(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L131
L71:
  lea    -0x90(%rbp),%rax
  lea    D135(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L15
  movl   $0x1,-0xdc(%rbp)
  jmp    L131
L15:
  lea    -0x90(%rbp),%rax
  lea    D3(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L212
  cmpl   $0x0,-0xdc(%rbp)
  je     L44
  lea    -0xd0(%rbp),%rax
  lea    0x10(%rax),%r8
  lea    -0xd0(%rbp),%rax
  lea    0xc(%rax),%rdi
  lea    -0xd0(%rbp),%rax
  lea    0x8(%rax),%rcx
  lea    -0xd0(%rbp),%rax
  lea    0x4(%rax),%rdx
  lea    -0xd0(%rbp),%rax
  sub    $0x8,%rsp
  lea    -0xd0(%rbp),%rsi
  add    $0x1c,%rsi
  push   %rsi
  lea    -0xd0(%rbp),%rsi
  add    $0x18,%rsi
  push   %rsi
  lea    -0xd0(%rbp),%rsi
  add    $0x14,%rsi
  push   %rsi
  mov    %r8,%r9
  mov    %rdi,%r8
  mov    %rax,%rsi
  lea    D43(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  add    $0x20,%rsp
  jmp    L131
L212:
  lea    -0xb0(%rbp),%rcx
  lea    -0xe0(%rbp),%rdx
  lea    -0x90(%rbp),%rax
  lea    D51(%rip),%rsi
  mov    %rax,%rdi
  call   <sscanf@plt>
  cmp    $0x2,%eax
  jne    L105
  cmpl   $0x0,-0xdc(%rbp)
  je     L96
  mov    -0xe0(%rbp),%eax
  cmp    %eax,-0xd4(%rbp)
  jg     L46
  mov    -0xd8(%rbp),%edx
  mov    -0xd4(%rbp),%eax
  add    %eax,%edx
  mov    -0xe0(%rbp),%eax
  cmp    %eax,%edx
  jle    L46
  lea    -0xb0(%rbp),%rax
  lea    D130(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L25
  mov    -0xe0(%rbp),%eax
  sub    -0xd4(%rbp),%eax
  lea    -0xd0(%rbp),%rdx
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  lea    D130(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L182
L25:
  lea    -0xb0(%rbp),%rax
  lea    D80(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L149
  mov    -0xe0(%rbp),%eax
  sub    -0xd4(%rbp),%eax
  lea    -0xd0(%rbp),%rdx
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  lea    D80(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
L182:
  lea    D145(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L131
L44:
  nop
  jmp    L6
L105:
  nop
  jmp    L6
L96:
  nop
  jmp    L6
L46:
  nop
  jmp    L6
L149:
  nop
L6:
  lea    D22(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L131:
  jmp    L18
L133:
  nop
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L108
  call   <__stack_chk_fail@plt>
L108:
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_tag: D80
type: string
name: unpack_data
arguments: data_tag: D138
type: string
name: unpack_data
arguments: data_tag: D113
type: string
name: unpack_data
arguments: data_tag: D33
type: string
name: unpack_data
arguments: data_tag: D143
type: string
name: unpack_data
arguments: data_tag: D50
type: string
name: unpack_data
arguments: data_tag: D66
type: string
name: unpack_data
arguments: data_tag: D135
type: string
name: unpack_data
arguments: data_tag: D3
type: string
name: unpack_data
arguments: data_tag: D43
type: string
name: unpack_data
arguments: data_tag: D51
type: string
name: unpack_data
arguments: data_tag: D130
type: string
name: unpack_data
arguments: data_tag: D145
type: string
name: unpack_data
arguments: data_tag: D22
type: string

tool: D80: OFF

tool: D138: httppower> 

tool: D113: help

tool: D33: Commands are:

tool: D143:  auth admin:admin

tool: D50:  get

tool: D66:  post outlet [1-8]=ON|OFF

tool: D135: auth admin:admin

tool: D3: get

tool: {"D43": "<html>\n<head>\n\n<META HTTP-EQUIV=\"Refresh\" CONTENT=\"300\">\n<title>Outlet Control  - Lite Power Controller</title></head>\n\n<body alink=\"#0000FF\" vlink=\"#0000FF\">\n<FONT FACE=\"Arial, Helvetica, Sans-Serif\">\n<table width=\"100%%\" cellspacing=0 cellpadding=0>\n<tr>\n<td valign=top width=\"17%%\" height=\"100%%\">\n\n    <!-- menu -->\n    <table width=\"100%%\" height=\"100%%\" align=center border=0 cellspacing=1 cellpadding=0>\n    <tr><td valign=top bgcolor=\"#F4F4F4\">\n    <table width=\"100%%\" cellpadding=1 cellspacing=5>\n\n    <tr><td align=center>\n    <table><tr><td><a href=\"http://www.webpowerswitch.com/\"><img src=logo.gif width=195 height=65 border=0></a></td>\n    <td><b><font size=-1>Ethernet Power Controller</font></b></td></tr></table>\n    <hr>\n    </td></tr>\n\n\n\n<tr><td nowrap><b><a href=\"/index.htm\">Outlet Control</a></b></td></tr>\n<tr><td nowrap><b><a href=\"/admin.htm\">Setup</a></b></td></tr>\n\n\n\n<tr><td nowrap><b><a href=\"/ap.htm\">AutoPing</a></b></td></tr>\n<tr><td nowrap><b><a href=\"/logout\">Logout</a></b></td></tr>\n<tr><td nowrap><b><a href=\"http://www.digital-loggers.com/lpchelp.html\">Help</a></b></td></tr>\n\n<tr><td><hr></td></tr>\n\n\n<tr><td><b><a href=\"http://www.digital-loggers.com\">Link 1</a></b></td></tr>\n\n<tr><td><b><a href=\"http://www.digital-loggers.com\">Link 2</a></b></td></tr>\n\n<tr><td><b><a href=\"http://www.digital-loggers.com\">Link 3</a></b></td></tr>\n\n<tr><td><b><a href=\"http://www.digital-loggers.com\">Link 4</a></b></td></tr>\n\n\n    </table>\n    </td></tr>\n\n\n    <tr><td valign=bottom height=\"100%%\" bgcolor=\"#F4F4F4\">\n    <small>Version 1.2.1 (Aug 23 2007 / 20:14:33) 1555A5A1-D43E3FC2</small>\n    </td></tr>\n    <tr><td valign=bottom height=\"100%%\" bgcolor=\"#F4F4F4\">\n    <small>S/N:0000130175</small>\n    </td></tr>\n\n    </table>\n    <!-- /menu -->\n\n</td>\n<td valign=top width=\"83%%\">\n\n    <!-- heading table -->\n    <table width=\"100%%\" align=center border=0 cellspacing=1 cellpadding=3>\n\n        <tr>\n        <th bgcolor=\"#DDDDFF\" align=left>\n        Controller: Lite Power Controller\n        </th>\n        </tr>\n\n        <tr bgcolor=\"#FFFFFF\" align=left>\n        <td>\n        Uptime:     0:35:01 <!-- 2101s up -->\n        </td>\n        </tr>\n\n    </table>\n    <!-- /heading table -->\n\n    <br>\n\n    <!-- individual control table -->\n    <table width=\"100%%\" align=center border=0 cellspacing=1 cellpadding=3>\n\n        <tr>\n        <th bgcolor=\"#DDDDFF\" colspan=5 align=left>\n        Individual Control\n        </th>\n        </tr>\n\n        <!-- heading rows -->\n        <tr bgcolor=\"#DDDDDD\">\n        <th>#</th>\n        <th align=left>Name</th>\n        <th align=left>State</th>\n        <th align=left colspan=2>Action</th>\n        </tr>\n        <!-- /heading rows -->\n\n\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>1</td>\n<td>Outlet 1</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?1=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?1=CCL>Cycle</a> -->\n</td></tr>\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>2</td>\n<td>Outlet 2</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?2=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?2=CCL>Cycle</a> -->\n</td></tr>\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>3</td>\n<td>Outlet 3</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?3=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?3=CCL>Cycle</a> -->\n</td></tr>\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>4</td>\n<td>Outlet 4</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?4=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?4=CCL>Cycle</a> -->\n</td></tr>\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>5</td>\n<td>Outlet 5</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?5=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?5=CCL>Cycle</a> -->\n</td></tr>\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>6</td>\n<td>Outlet 6</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?6=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?6=CCL>Cycle</a> -->\n</td></tr>\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>7</td>\n<td>Outlet 7</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?7=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?7=CCL>Cycle</a> -->\n</td></tr>\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>8</td>\n<td>Outlet 8</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?8=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?8=CCL>Cycle</a> -->\n</td></tr>\n\n\n    </table>\n    <!-- /individual control table -->\n\n    <br>\n\n<table width=\"100%%\" align=center border=0 cellspacing=1 cellpadding=3>\n<tr><th bgcolor=\"#DDDDFF\" align=left>Master Control</th></tr>\n<tr><td bgcolor=\"#F4F4F4\" align=left><a href=outlet?a=OFF>All outlets OFF</a></td></tr>\n<tr><td bgcolor=\"#F4F4F4\" align=left><a href=outlet?a=ON>All outlets ON</a></td></tr>\n<tr><td bgcolor=\"#F4F4F4\" align=left><a href=outlet?a=CCL>Cycle all outlets</a></td></tr>\n\n<tr><td align=center>Sequence delay: 1 sec.</td></tr>\n\n</table>\n\n\n</td>\n</tr>\n</table>\n\n</body>\n</html>\n"}

tool: D51: post outlet %d=%s

tool: D130: ON

tool: D145: <HTML><HEAD>

<META HTTP-EQUIV="refresh" content="0; URL=/index.htm">

</HEAD><BODY></BODY>

tool: D22: Error

assistant: ```c
void prompt_loop(void) {
  char buf[128], tmp[32];
  char plug[8][4];
  int num_plugs = 8;
  int plug_origin = 1;
  int i;
  int authenticated = 0;
  for (i = 0; i < num_plugs; i++)
    strcpy(plug[i], "OFF");
  for (;;) {
    if (xreadline("httppower> ", buf, sizeof(buf)) == NULL)
      break;
    if (!strcmp(buf, "help")) {
      printf("Commands are:\n");
      printf(" auth admin:admin\n");
      printf(" get\n");
      printf(" post outlet [1-8]=ON|OFF\n");
    } else if (!strcmp(buf, "auth admin:admin")) {
      authenticated = 1;
    } else if (!strcmp(buf, "get")) {
      if (!authenticated)
        goto err;
      printf("<html>\n<head>\n\n<META HTTP-EQUIV=\"Refresh\" CONTENT=\"300\">\n<title>Outlet Control  - Lite Power Controller</title></head>\n\n<body alink=\"#0000FF\" vlink=\"#0000FF\">\n<FONT FACE=\"Arial, Helvetica, Sans-Serif\">\n<table width=\"100%%\" cellspacing=0 cellpadding=0>\n<tr>\n<td valign=top width=\"17%%\" height=\"100%%\">\n\n    <!-- menu -->\n    <table width=\"100%%\" height=\"100%%\" align=center border=0 cellspacing=1 cellpadding=0>\n    <tr><td valign=top bgcolor=\"#F4F4F4\">\n    <table width=\"100%%\" cellpadding=1 cellspacing=5>\n\n    <tr><td align=center>\n    <table><tr><td><a href=\"http://www.webpowerswitch.com/\"><img src=logo.gif width=195 height=65 border=0></a></td>\n    <td><b><font size=-1>Ethernet Power Controller</font></b></td></tr></table>\n    <hr>\n    </td></tr>\n\n\n\n<tr><td nowrap><b><a href=\"/index.htm\">Outlet Control</a></b></td></tr>\n<tr><td nowrap><b><a href=\"/admin.htm\">Setup</a></b></td></tr>\n\n\n\n<tr><td nowrap><b><a href=\"/ap.htm\">AutoPing</a></b></td></tr>\n<tr><td nowrap><b><a href=\"/logout\">Logout</a></b></td></tr>\n<tr><td nowrap><b><a href=\"http://www.digital-loggers.com/lpchelp.html\">Help</a></b></td></tr>\n\n<tr><td><hr></td></tr>\n\n\n<tr><td><b><a href=\"http://www.digital-loggers.com\">Link 1</a></b></td></tr>\n\n<tr><td><b><a href=\"http://www.digital-loggers.com\">Link 2</a></b></td></tr>\n\n<tr><td><b><a href=\"http://www.digital-loggers.com\">Link 3</a></b></td></tr>\n\n<tr><td><b><a href=\"http://www.digital-loggers.com\">Link 4</a></b></td></tr>\n\n\n    </table>\n    </td></tr>\n\n\n    <tr><td valign=bottom height=\"100%%\" bgcolor=\"#F4F4F4\">\n    <small>Version 1.2.1 (Aug 23 2007 / 20:14:33) 1555A5A1-D43E3FC2</small>\n    </td></tr>\n    <tr><td valign=bottom height=\"100%%\" bgcolor=\"#F4F4F4\">\n    <small>S/N:0000130175</small>\n    </td></tr>\n\n    </table>\n    <!-- /menu -->\n\n</td>\n<td valign=top width=\"83%%\">\n\n    <!-- heading table -->\n    <table width=\"100%%\" align=center border=0 cellspacing=1 cellpadding=3>\n\n        <tr>\n        <th bgcolor=\"#DDDDFF\" align=left>\n        Controller: Lite Power Controller\n        </th>\n        </tr>\n\n        <tr bgcolor=\"#FFFFFF\" align=left>\n        <td>\n        Uptime:     0:35:01 <!-- 2101s up -->\n        </td>\n        </tr>\n\n    </table>\n    <!-- /heading table -->\n\n    <br>\n\n    <!-- individual control table -->\n    <table width=\"100%%\" align=center border=0 cellspacing=1 cellpadding=3>\n\n        <tr>\n        <th bgcolor=\"#DDDDFF\" colspan=5 align=left>\n        Individual Control\n        </th>\n        </tr>\n\n        <!-- heading rows -->\n        <tr bgcolor=\"#DDDDDD\">\n        <th>#</th>\n        <th align=left>Name</th>\n        <th align=left>State</th>\n        <th align=left colspan=2>Action</th>\n        </tr>\n        <!-- /heading rows -->\n\n\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>1</td>\n<td>Outlet 1</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?1=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?1=CCL>Cycle</a> -->\n</td></tr>\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>2</td>\n<td>Outlet 2</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?2=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?2=CCL>Cycle</a> -->\n</td></tr>\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>3</td>\n<td>Outlet 3</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?3=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?3=CCL>Cycle</a> -->\n</td></tr>\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>4</td>\n<td>Outlet 4</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?4=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?4=CCL>Cycle</a> -->\n</td></tr>\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>5</td>\n<td>Outlet 5</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?5=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?5=CCL>Cycle</a> -->\n</td></tr>\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>6</td>\n<td>Outlet 6</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?6=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?6=CCL>Cycle</a> -->\n</td></tr>\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>7</td>\n<td>Outlet 7</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?7=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?7=CCL>Cycle</a> -->\n</td></tr>\n\n\n<tr bgcolor=\"#F4F4F4\"><td align=center>8</td>\n<td>Outlet 8</td><td>\n<b><font color=red>%s</font></b></td><td>\n<a href=outlet?8=ON>Switch ON</a>\n</td><td>\n<!-- <a href=outlet?8=CCL>Cycle</a> -->\n</td></tr>\n\n\n    </table>\n    <!-- /individual control table -->\n\n    <br>\n\n<table width=\"100%%\" align=center border=0 cellspacing=1 cellpadding=3>\n<tr><th bgcolor=\"#DDDDFF\" align=left>Master Control</th></tr>\n<tr><td bgcolor=\"#F4F4F4\" align=left><a href=outlet?a=OFF>All outlets OFF</a></td></tr>\n<tr><td bgcolor=\"#F4F4F4\" align=left><a href=outlet?a=ON>All outlets ON</a></td></tr>\n<tr><td bgcolor=\"#F4F4F4\" align=left><a href=outlet?a=CCL>Cycle all outlets</a></td></tr>\n\n<tr><td align=center>Sequence delay: 1 sec.</td></tr>\n\n</table>\n\n\n</td>\n</tr>\n</table>\n\n</body>\n</html>\n", plug[0], plug[1], plug[2], plug[3], plug[4], plug[5], plug[6], plug[7]);
    } else if (sscanf(buf, "post outlet %d=%s", &i, tmp) == 2) {
      if (!authenticated)
        goto err;
      if (i < plug_origin || i >= num_plugs + plug_origin)
        goto err;
      if (!strcmp(tmp, "ON"))
        strcpy(plug[i - plug_origin], "ON");
      else if (!strcmp(tmp, "OFF"))
        strcpy(plug[i - plug_origin], "OFF");
      else
        goto err;
      printf("<HTML><HEAD>\n\n<META HTTP-EQUIV=\"refresh\" content=\"0; URL=/index.htm\">\n\n</HEAD><BODY></BODY>\n");
    } else
      goto err;
    continue;
  err:
    printf("Error\n");
  }
}
```