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     L34
  movabs $0x5f454352554f5325,%rcx
  movabs $0x414e495453454425,%r10
  movabs $0x5249445f4e4f4954,%r9
  movabs $0x4f524745524f4625,%r11
  jmp    L26
  nopw   0x0(%rax,%rax,1)
L181:
  mov    %rdi,%rdx
  mov    %al,(%rdi)
  lea    -0x1(%r12),%rax
  sub    %rbp,%rdx
  cmp    %rax,%rdx
  adc    $0x0,%rdi
  add    $0x1,%rbx
L102:
  movzbl (%rbx),%eax
  test   %al,%al
  je     L34
L26:
  cmp    $0x25,%al
  jne    L181
  lea    0x10(%rsp),%rsi
  mov    %rsi,%rdx
L239:
  mov    %al,(%rdx)
  mov    %rdx,%rax
  sub    %rsi,%rax
  cmp    $0x5f,%rax
  ja     L194
  movzbl 0x1(%rbx),%eax
  add    $0x1,%rbx
  add    $0x1,%rdx
  test   $0xdf,%al
  jne    L239
L11:
  movb   $0x0,(%rdx)
  cmp    %rcx,0x10(%rsp)
  je     L229
  nop
L190:
  cmpl   $0x52415025,0x10(%rsp)
  je     L118
L32:
  mov    0x18(%rsp),%rax
  mov    0x10(%rsp),%rdx
  xor    %r9,%rax
  xor    %r10,%rdx
  or     %rdx,%rax
  je     L256
L121:
  cmp    %r11,0x10(%rsp)
  je     L269
L158:
  cmpl   $0x454c4325,0x10(%rsp)
  jne    L102
  cmpw   $0x5241,0x14(%rsp)
  jne    L102
  cmpb   $0x0,0x16(%rsp)
  jne    L102
L112:
  movl   $0x1,(%r15)
  movzbl (%rbx),%eax
  test   %al,%al
  jne    L26
  nopw   0x0(%rax,%rax,1)
L34:
  movb   $0x0,(%rdi)
  mov    %r14,%rdi
  call   <free@plt>
  mov    0x78(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L37
  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)
L194:
  movzbl 0x1(%rbx),%eax
  add    $0x1,%rbx
  test   $0xdf,%al
  je     L11
L59:
  add    $0x1,%rbx
  mov    %eax,%esi
  movzbl (%rbx),%eax
  test   $0xdf,%al
  jne    L59
  mov    %sil,(%rdx)
  movb   $0x0,(%rdx)
  cmp    %rcx,0x10(%rsp)
  jne    L190
L229:
  cmpl   $0x454c4946,0x18(%rsp)
  jne    L190
  cmpb   $0x0,0x1c(%rsp)
  jne    L190
  mov    %rdi,%rax
  mov    %r12d,%esi
  mov    %r13,%rdx
  sub    %rbp,%rax
  sub    %eax,%esi
L166:
  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    L102
L256:
  cmpb   $0x0,0x20(%rsp)
  jne    L121
  mov    %rdi,%rax
  mov    %r12d,%esi
  mov    %r14,%rdx
  sub    %rbp,%rax
  sub    %eax,%esi
  jmp    L166
  nopl   0x0(%rax,%rax,1)
L118:
  cmpw   $0x4d41,0x14(%rsp)
  jne    L32
  cmpb   $0x0,0x16(%rsp)
  jne    L32
  mov    %rdi,%rax
  mov    %r12d,%esi
  mov    (%rsp),%rdx
  sub    %rbp,%rax
  sub    %eax,%esi
  jmp    L166
  nopl   0x0(%rax)
L269:
  cmpl   $0x444e55,0x18(%rsp)
  jne    L158
  jmp    L112
L37:
  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);
}
```