user: What is the c source code of the assembly code below:

```asm
<pretty_format>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %rdi,-0x18(%rbp)
  mov    %rsi,-0x20(%rbp)
  mov    %rdx,-0x28(%rbp)
  movl   $0x0,-0x8(%rbp)
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rcx
  mov    %rax,%rdx
  mov    $0x2,%esi
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  call   <safe_known_str@plt>
  jmp    L182
L221:
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  cmp    $0x7d,%eax
  je     L190
  cmp    $0x7d,%eax
  jg     L112
  cmp    $0x7b,%eax
  je     L41
  cmp    $0x7b,%eax
  jg     L112
  cmp    $0x3b,%eax
  je     L33
  cmp    $0x5c,%eax
  jne    L112
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rsi
  mov    $0x1fff,%ecx
  mov    %eax,%edi
  call   <safe_copy_chr@plt>
  addq   $0x1,-0x28(%rbp)
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rsi
  mov    $0x1fff,%ecx
  mov    %eax,%edi
  call   <safe_copy_chr@plt>
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  test   %al,%al
  jne    L280
  jmp    L78
L41:
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rcx
  mov    %rax,%rdx
  mov    $0x2,%esi
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  call   <safe_known_str@plt>
  movl   $0x0,-0x4(%rbp)
  jmp    L75
L301:
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  mov    $0x1fff,%ecx
  mov    %rax,%rsi
  lea    D49(%rip),%rax
  mov    %rax,%rdi
  call   <safe_copy_str@plt>
  addl   $0x1,-0x4(%rbp)
L75:
  mov    -0x4(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jl     L301
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rsi
  mov    $0x1fff,%ecx
  mov    %eax,%edi
  call   <safe_copy_chr@plt>
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rcx
  mov    %rax,%rdx
  mov    $0x2,%esi
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  call   <safe_known_str@plt>
  addl   $0x1,-0x8(%rbp)
  movl   $0x0,-0x4(%rbp)
  jmp    L205
L285:
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  mov    $0x1fff,%ecx
  mov    %rax,%rsi
  lea    D49(%rip),%rax
  mov    %rax,%rdi
  call   <safe_copy_str@plt>
  addl   $0x1,-0x4(%rbp)
L205:
  mov    -0x4(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jl     L285
  jmp    L215
L164:
  addq   $0x1,-0x28(%rbp)
L215:
  mov    -0x28(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0x20,%al
  je     L164
  jmp    L310
L190:
  cmpl   $0x0,-0x8(%rbp)
  jle    L60
  subl   $0x1,-0x8(%rbp)
L60:
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rcx
  mov    %rax,%rdx
  mov    $0x2,%esi
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  call   <safe_known_str@plt>
  movl   $0x0,-0x4(%rbp)
  jmp    L255
L241:
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  mov    $0x1fff,%ecx
  mov    %rax,%rsi
  lea    D49(%rip),%rax
  mov    %rax,%rdi
  call   <safe_copy_str@plt>
  addl   $0x1,-0x4(%rbp)
L255:
  mov    -0x4(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jl     L241
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rsi
  mov    $0x1fff,%ecx
  mov    %eax,%edi
  call   <safe_copy_chr@plt>
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rcx
  mov    %rax,%rdx
  mov    $0x2,%esi
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  call   <safe_known_str@plt>
  movl   $0x0,-0x4(%rbp)
  jmp    L259
L150:
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  mov    $0x1fff,%ecx
  mov    %rax,%rsi
  lea    D49(%rip),%rax
  mov    %rax,%rdi
  call   <safe_copy_str@plt>
  addl   $0x1,-0x4(%rbp)
L259:
  mov    -0x4(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jl     L150
  jmp    L218
L63:
  addq   $0x1,-0x28(%rbp)
L218:
  mov    -0x28(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0x20,%al
  je     L63
  jmp    L310
L33:
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rsi
  mov    $0x1fff,%ecx
  mov    %eax,%edi
  call   <safe_copy_chr@plt>
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rcx
  mov    %rax,%rdx
  mov    $0x2,%esi
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  call   <safe_known_str@plt>
  movl   $0x0,-0x4(%rbp)
  jmp    L217
L4:
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  mov    $0x1fff,%ecx
  mov    %rax,%rsi
  lea    D49(%rip),%rax
  mov    %rax,%rdi
  call   <safe_copy_str@plt>
  addl   $0x1,-0x4(%rbp)
L217:
  mov    -0x4(%rbp),%eax
  cmp    -0x8(%rbp),%eax
  jl     L4
  jmp    L299
L109:
  addq   $0x1,-0x28(%rbp)
L299:
  mov    -0x28(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0x20,%al
  je     L109
  jmp    L310
L112:
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rsi
  mov    $0x1fff,%ecx
  mov    %eax,%edi
  call   <safe_copy_chr@plt>
  jmp    L310
L280:
  nop
L310:
  addq   $0x1,-0x28(%rbp)
L182:
  mov    -0x28(%rbp),%rax
  movzbl (%rax),%eax
  test   %al,%al
  jne    L221
  mov    -0x20(%rbp),%rax
  mov    (%rax),%rax
  sub    $0x1,%rax
  movzbl (%rax),%eax
  cmp    $0xa,%al
  je     L78
  mov    -0x20(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rcx
  mov    %rax,%rdx
  mov    $0x2,%esi
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  call   <safe_known_str@plt>
L78:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D61
data_type: string
name: extract_symbolic_data
arguments: label: D49
data_type: string

tool: D61: 


tool: D49:   

assistant: ```c
void pretty_format(char *dest, char **cp, char *p) {
  int indent_lev, i;
  indent_lev = 0;
  safe_known_str("\r\n", 2, (dest), (cp));
  while (*p) {
    switch (*p) {
    case '\\':
      safe_copy_chr((*p), (dest), (cp), (8192 - 1));
      p++;
      safe_copy_chr((*p), (dest), (cp), (8192 - 1));
      if (!*p) {
        return;
      }
      break;
    case '{':
      safe_known_str("\r\n", 2, (dest), (cp));
      for (i = 0; i < indent_lev; i++) {
        safe_copy_str(((char *)"  "), (dest), (cp), (8192 - 1));
      }
      safe_copy_chr((*p), (dest), (cp), (8192 - 1));
      safe_known_str("\r\n", 2, (dest), (cp));
      indent_lev++;
      for (i = 0; i < indent_lev; i++) {
        safe_copy_str(((char *)"  "), (dest), (cp), (8192 - 1));
      }
      while (p[1] == ' ') {
        p++;
      }
      break;
    case '}':
      if (indent_lev > 0) {
        indent_lev--;
      }
      safe_known_str("\r\n", 2, (dest), (cp));
      for (i = 0; i < indent_lev; i++) {
        safe_copy_str(((char *)"  "), (dest), (cp), (8192 - 1));
      }
      safe_copy_chr((*p), (dest), (cp), (8192 - 1));
      safe_known_str("\r\n", 2, (dest), (cp));
      for (i = 0; i < indent_lev; i++) {
        safe_copy_str(((char *)"  "), (dest), (cp), (8192 - 1));
      }
      while (p[1] == ' ') {
        p++;
      }
      break;
    case ';':
      safe_copy_chr((*p), (dest), (cp), (8192 - 1));
      safe_known_str("\r\n", 2, (dest), (cp));
      for (i = 0; i < indent_lev; i++) {
        safe_copy_str(((char *)"  "), (dest), (cp), (8192 - 1));
      }
      while (p[1] == ' ') {
        p++;
      }
      break;
    default:
      safe_copy_chr((*p), (dest), (cp), (8192 - 1));
      break;
    }
    p++;
  }
  if (*(*cp - 1) != '\n') {
    safe_known_str("\r\n", 2, (dest), (cp));
  }
}
```