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

```asm
<format_mount_command>:
  endbr64
  push   %r15
  push   %r14
  mov    %rdi,%r14
  mov    %rsi,%rdi
  xor    %esi,%esi
  push   %r13
  push   %r12
  mov    %r8,%r12
  push   %rbp
  mov    %r9,%rbp
  push   %rbx
  mov    %rcx,%rbx
  sub    $0x88,%rsp
  mov    %rdx,(%rsp)
  mov    0xc0(%rsp),%r15
  mov    %fs:0x28,%rax
  mov    %rax,0x78(%rsp)
  xor    %eax,%eax
  movl   $0x0,(%r15)
  call   <escape_filename@plt>
  mov    %r14,%rdi
  xor    %esi,%esi
  mov    %rax,%r13
  call   <escape_filename@plt>
  movb   $0x0,0x0(%rbp)
  mov    %rbx,%rdi
  mov    $0x7c,%esi
  mov    %rax,%r14
  call   <after_first@plt>
  mov    %rbp,%rdi
  mov    %rax,%rbx
  movzbl (%rax),%eax
  test   %al,%al
  je     L69
  movabs $0x5f454352554f5325,%rcx
  movabs $0x414e495453454425,%r10
  movabs $0x5249445f4e4f4954,%r9
  movabs $0x4f524745524f4625,%r11
  jmp    L111
  nopw   0x0(%rax,%rax,1)
L109:
  mov    %rdi,%rdx
  mov    %al,(%rdi)
  lea    -0x1(%r12),%rax
  sub    %rbp,%rdx
  cmp    %rax,%rdx
  adc    $0x0,%rdi
  add    $0x1,%rbx
L137:
  movzbl (%rbx),%eax
  test   %al,%al
  je     L69
L111:
  cmp    $0x25,%al
  jne    L109
  movzbl (%rbx),%edx
  lea    0x10(%rsp),%rsi
  mov    %rsi,%rax
  test   $0xdf,%dl
  je     L8
  nopw   0x0(%rax,%rax,1)
L93:
  mov    %dl,(%rax)
  mov    %rax,%rdx
  sub    %rsi,%rdx
  cmp    $0x60,%rdx
  adc    $0x0,%rax
  movzbl 0x1(%rbx),%edx
  add    $0x1,%rbx
  test   $0xdf,%dl
  jne    L93
L8:
  movb   $0x0,(%rax)
  cmp    %rcx,(%rsi)
  je     L238
L216:
  cmpl   $0x52415025,(%rsi)
  je     L124
L146:
  mov    0x8(%rsi),%rax
  mov    (%rsi),%rdx
  xor    %r9,%rax
  xor    %r10,%rdx
  or     %rdx,%rax
  je     L167
L84:
  cmp    %r11,(%rsi)
  je     L160
L76:
  cmpl   $0x454c4325,(%rsi)
  jne    L137
  cmpw   $0x5241,0x4(%rsi)
  jne    L137
  cmpb   $0x0,0x6(%rsi)
  jne    L137
L106:
  movl   $0x1,(%r15)
  movzbl (%rbx),%eax
  test   %al,%al
  jne    L111
L69:
  movb   $0x0,(%rdi)
  mov    %r14,%rdi
  call   <free@plt>
  mov    0x78(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L221
  add    $0x88,%rsp
  mov    %r13,%rdi
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    10a0 <free@plt>
  nopl   0x0(%rax,%rax,1)
L167:
  cmpb   $0x0,0x10(%rsi)
  jne    L84
  mov    %rdi,%rax
  mov    %r12d,%esi
  mov    %r14,%rdx
  sub    %rbp,%rax
  sub    %eax,%esi
  jmp    L154
  cs nopw 0x0(%rax,%rax,1)
L238:
  cmpl   $0x454c4946,0x8(%rsi)
  jne    L216
  cmpb   $0x0,0xc(%rsi)
  jne    L216
  mov    %rdi,%rax
  mov    %r12d,%esi
  mov    %r13,%rdx
  sub    %rbp,%rax
  sub    %eax,%esi
L154:
  mov    %rdi,0x8(%rsp)
  call   <copy_str@plt>
  mov    0x8(%rsp),%rdi
  call   <strlen@plt>
  mov    0x8(%rsp),%rdi
  movabs $0x5f454352554f5325,%rcx
  movabs $0x414e495453454425,%r10
  movabs $0x5249445f4e4f4954,%r9
  cltq
  movabs $0x4f524745524f4625,%r11
  add    %rax,%rdi
  jmp    L137
L124:
  cmpw   $0x4d41,0x4(%rsi)
  jne    L146
  cmpb   $0x0,0x6(%rsi)
  jne    L146
  mov    %rdi,%rax
  mov    %r12d,%esi
  mov    (%rsp),%rdx
  sub    %rbp,%rax
  sub    %eax,%esi
  jmp    L154
  nopw   0x0(%rax,%rax,1)
L160:
  cmpl   $0x444e55,0x8(%rsi)
  jne    L76
  jmp    L106
L221:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
void format_mount_command(const char mount_point[], const char file_name[], const char param[], const char format[], size_t buf_size, char buf[], int *foreground) {
  char *buf_pos;
  const char *prog_pos;
  char *escaped_path;
  char *escaped_mount_point;
  *foreground = 0;
  escaped_path = escape_filename(file_name, 0);
  escaped_mount_point = escape_filename(mount_point, 0);
  buf_pos = buf;
  buf_pos[0] = '\0';
  prog_pos = after_first(format, '|');
  while (*prog_pos != '\0') {
    if (*prog_pos == '%') {
      char cmd_buf[96];
      char *cmd_pos;
      cmd_pos = cmd_buf;
      while (*prog_pos != '\0' && *prog_pos != ' ') {
        *cmd_pos = *prog_pos;
        if (cmd_pos - cmd_buf < sizeof(cmd_buf))
          cmd_pos++;
        prog_pos++;
      }
      *cmd_pos = '\0';
      if (!strcmp(cmd_buf, "%SOURCE_FILE")) {
        copy_str(buf_pos, buf_size - (buf_pos - buf), escaped_path);
        buf_pos += strlen(buf_pos);
      } else if (!strcmp(cmd_buf, "%PARAM")) {
        copy_str(buf_pos, buf_size - (buf_pos - buf), param);
        buf_pos += strlen(buf_pos);
      } else if (!strcmp(cmd_buf, "%DESTINATION_DIR")) {
        copy_str(buf_pos, buf_size - (buf_pos - buf), escaped_mount_point);
        buf_pos += strlen(buf_pos);
      } else if (!strcmp(cmd_buf, "%FOREGROUND") || !strcmp(cmd_buf, "%CLEAR")) {
        *foreground = 1;
      }
    } else {
      *buf_pos = *prog_pos;
      if (buf_pos - buf < buf_size - 1)
        buf_pos++;
      prog_pos++;
    }
  }
  *buf_pos = '\0';
  free(escaped_mount_point);
  free(escaped_path);
}
```