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

```asm
<handle_request>:
  endbr64
  push   %r14
  push   %r13
  lea    D56(%rip),%r13
  push   %r12
  mov    %edi,%r12d
  lea    D20(%rip),%rdi
  push   %rbp
  push   %rbx
  sub    $0x620,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x618(%rsp)
  xor    %eax,%eax
  lea    0x10(%rsp),%rbp
  lea    0x8(%rsp),%r14
  call   <puts@plt>
  mov    %rbp,%rsi
  mov    $0x200,%edx
  mov    %r12d,%edi
  movb   $0x0,0x10(%rsp)
  call   <read_text_data@plt>
  mov    %r14,%rdx
  mov    %r13,%rsi
  mov    %rbp,%rdi
  movq   $0x0,0x8(%rsp)
  call   <strtok_r@plt>
  mov    %r14,%rdx
  mov    %r13,%rsi
  xor    %edi,%edi
  mov    %rax,%rbp
  call   <strtok_r@plt>
  mov    %r14,%rdx
  mov    %r13,%rsi
  xor    %edi,%edi
  mov    %rax,%rbx
  lea    0x210(%rsp),%r14
  call   <strtok_r@plt>
  lea    0x1(%rbx),%rsi
  mov    %r14,%rdi
  mov    $0x1ff,%edx
  mov    %rax,%r13
  call   <strncpy@plt>
  lea    D69(%rip),%rsi
  mov    %rbp,%rdi
  movb   $0x0,0x40f(%rsp)
  call   <strcmp@plt>
  test   %rax,%rax
  je     L25
  mov    %r13,%rdx
  mov    %rbp,%rsi
  lea    D24(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
L30:
  xor    %edx,%edx
  lea    0x420(%rsp),%rdi
  movabs $0x65726f6e6769,%rax
  mov    $0x3e,%ecx
  mov    %rax,0x410(%rsp)
  xor    %eax,%eax
  lea    0x410(%rsp),%rbp
  lea    D33(%rip),%r13
  rep stos %rax,%es:(%rdi)
  mov    %rdx,0x418(%rsp)
  jmp    L19
  nopl   0x0(%rax)
L15:
  mov    $0x200,%edx
  mov    %rbp,%rsi
  mov    %r12d,%edi
  call   <read_text_data@plt>
L19:
  mov    %rbp,%rdi
  mov    %r13,%rsi
  call   <strspn@plt>
  mov    %rbp,%rdi
  mov    %rax,%rbx
  call   <strlen@plt>
  cmp    %rax,%rbx
  jne    L15
  lea    D77(%rip),%rsi
  mov    %r12d,%edi
  call   <write_data@plt>
  lea    D74(%rip),%rsi
  mov    %r12d,%edi
  call   <write_data@plt>
  lea    D90(%rip),%rsi
  mov    %r12d,%edi
  call   <write_data@plt>
  lea    D58(%rip),%rsi
  mov    %r12d,%edi
  call   <write_data@plt>
  lea    D28(%rip),%rsi
  mov    %r12d,%edi
  call   <write_data@plt>
  mov    0x618(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L7
  add    $0x620,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
  nopl   0x0(%rax)
L25:
  mov    %r14,%rsi
  lea    D37(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L30
L7:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: label: D56
type: string
name: parse_data
arguments: label: D20
type: string
name: parse_data
arguments: label: D69
type: string
name: parse_data
arguments: label: D24
type: string
name: parse_data
arguments: label: D33
type: string
name: parse_data
arguments: label: D77
type: string
name: parse_data
arguments: label: D74
type: string
name: parse_data
arguments: label: D90
type: string
name: parse_data
arguments: label: D58
type: string
name: parse_data
arguments: label: D28
type: string
name: parse_data
arguments: label: D37
type: string

tool: D56:  

tool: D20: Handling request...

tool: D69: GET

tool: D24: Unknown request: 'GET %s %s'


tool: D33:  
	

tool: D77: HTTP/1.0 200 OK


tool: D74: Content-Type: 

tool: D90: pepper-application/x-chromoting-plugin

tool: D58: 



tool: D28: Data


tool: D37: Requesting '%s'


assistant: ```c
void handle_request(int connection) {
  printf("Handling request...\n");
  char buffer[512];
  buffer[0] = '\0';
  read_text_data(connection, buffer, 512);
  char *saveptr = NULL;
  char *request = strtok_r(buffer, " ", &saveptr);
  char *resource = strtok_r(NULL, " ", &saveptr);
  char *version = strtok_r(NULL, " ", &saveptr);
  char mime_type[512];
  strncpy(mime_type, &resource[1], 511);
  mime_type[511] = '\0';
  if (strcmp(request, "GET")) {
    printf("Unknown request: 'GET %s %s'\n", request, version);
  } else {
    printf("Requesting '%s'\n", mime_type);
  }
  char ignore[512] = "ignore";
  while (strspn(ignore, " \n\r\t") != strlen(ignore)) {
    read_text_data(connection, ignore, sizeof(ignore));
  }
  write_data(connection, "HTTP/1.0 200 OK\r\n");
  write_data(connection, "Content-Type: ");
  write_data(connection, "pepper-application/x-chromoting-plugin");
  write_data(connection, "\r\n\r\n");
  write_data(connection, "Data\n");
}
```