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

```asm
<cmodel_to_text>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %esi,-0xc(%rbp)
  mov    -0xc(%rbp),%eax
  sub    $0x9,%eax
  cmp    $0x15,%eax
  ja     L46
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D106(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D106(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    -0x8(%rbp),%rax
  lea    D55(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L56
  mov    -0x8(%rbp),%rax
  lea    D104(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L56
  mov    -0x8(%rbp),%rax
  lea    D15(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L56
  mov    -0x8(%rbp),%rax
  lea    D21(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L56
  mov    -0x8(%rbp),%rax
  lea    D128(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L56
  mov    -0x8(%rbp),%rax
  lea    D102(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L56
  mov    -0x8(%rbp),%rax
  lea    D49(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L56
  mov    -0x8(%rbp),%rax
  lea    D75(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L56
  mov    -0x8(%rbp),%rax
  lea    D20(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L56
  mov    -0x8(%rbp),%rax
  lea    D107(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L56
L46:
  mov    -0x8(%rbp),%rax
  lea    D55(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  nop
L56:
  nop
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: tag: D55
datatype: string
name: disassemble_data
arguments: tag: D104
datatype: string
name: disassemble_data
arguments: tag: D15
datatype: string
name: disassemble_data
arguments: tag: D21
datatype: string
name: disassemble_data
arguments: tag: D128
datatype: string
name: disassemble_data
arguments: tag: D102
datatype: string
name: disassemble_data
arguments: tag: D49
datatype: string
name: disassemble_data
arguments: tag: D75
datatype: string
name: disassemble_data
arguments: tag: D20
datatype: string
name: disassemble_data
arguments: tag: D107
datatype: string

tool: D55: RGB-8 Bit

tool: D104: RGBA-8 Bit

tool: D15: RGB-16 Bit

tool: D21: RGBA-16 Bit

tool: D128: YUV-8 Bit

tool: D102: YUVA-8 Bit

tool: D49: YUV-16 Bit

tool: D75: YUVA-16 Bit

tool: D20: RGB-FLOAT

tool: D107: RGBA-FLOAT

assistant: ```c
void cmodel_to_text(char *string, int cmodel) {
  switch (cmodel) {
  case 9:
    strcpy(string, "RGB-8 Bit");
    break;
  case 10:
    strcpy(string, "RGBA-8 Bit");
    break;
  case 11:
    strcpy(string, "RGB-16 Bit");
    break;
  case 12:
    strcpy(string, "RGBA-16 Bit");
    break;
  case 13:
    strcpy(string, "YUV-8 Bit");
    break;
  case 14:
    strcpy(string, "YUVA-8 Bit");
    break;
  case 15:
    strcpy(string, "YUV-16 Bit");
    break;
  case 16:
    strcpy(string, "YUVA-16 Bit");
    break;
  case 29:
    strcpy(string, "RGB-FLOAT");
    break;
  case 30:
    strcpy(string, "RGBA-FLOAT");
    break;
  default:
    strcpy(string, "RGB-8 Bit");
    break;
  }
}
```