user: What would the C source look like for the assembly code provided here?

```asm
<lcd_disp_inv>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  add    $0xffffffffffffff80,%rsp
  mov    %edi,-0x74(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movabs $0x2520204b4f3a31,%rax
  mov    %rax,-0x3b(%rbp)
  movl   $0x4b4f3a32,-0x62(%rbp)
  movw   $0x25,-0x5e(%rbp)
  movabs $0x2520204b4f3a33,%rax
  mov    %rax,-0x33(%rbp)
  movl   $0x4b4f3a34,-0x5c(%rbp)
  movw   $0x25,-0x58(%rbp)
  movabs $0x2520204b4f3a35,%rax
  mov    %rax,-0x2b(%rbp)
  movl   $0x4b4f3a36,-0x56(%rbp)
  movw   $0x25,-0x52(%rbp)
  movabs $0x2520204441423a31,%rax
  mov    %rax,-0x23(%rbp)
  movb   $0x0,-0x1b(%rbp)
  movl   $0x41423a32,-0x50(%rbp)
  movw   $0x2544,-0x4c(%rbp)
  movb   $0x0,-0x4a(%rbp)
  movabs $0x2520204441423a33,%rax
  mov    %rax,-0x1a(%rbp)
  movb   $0x0,-0x12(%rbp)
  movl   $0x41423a34,-0x49(%rbp)
  movw   $0x2544,-0x45(%rbp)
  movb   $0x0,-0x43(%rbp)
  movabs $0x2520204441423a35,%rax
  mov    %rax,-0x11(%rbp)
  movb   $0x0,-0x9(%rbp)
  movl   $0x41423a36,-0x42(%rbp)
  movw   $0x2544,-0x3e(%rbp)
  movb   $0x0,-0x3c(%rbp)
  cmpl   $0xc,-0x74(%rbp)
  ja     L121
  mov    -0x74(%rbp),%eax
  lea    0x0(,%rax,4),%rdx
  lea    D0(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D0(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  lea    -0x3b(%rbp),%rax
  mov    %rax,%rdi
  call   <lcd_msg@plt>
  jmp    L121
  lea    -0x62(%rbp),%rax
  mov    %rax,%rdi
  call   <lcd_msg@plt>
  mov    $0xc0,%edi
  call   <lcd_clear@plt>
  jmp    L121
  lea    -0x33(%rbp),%rax
  mov    %rax,%rdi
  call   <lcd_msg@plt>
  jmp    L121
  lea    -0x5c(%rbp),%rax
  mov    %rax,%rdi
  call   <lcd_msg@plt>
  mov    $0x90,%edi
  call   <lcd_clear@plt>
  jmp    L121
  lea    -0x2b(%rbp),%rax
  mov    %rax,%rdi
  call   <lcd_msg@plt>
  jmp    L121
  lea    -0x56(%rbp),%rax
  mov    %rax,%rdi
  call   <lcd_msg@plt>
  jmp    L121
  lea    -0x23(%rbp),%rax
  mov    %rax,%rdi
  call   <lcd_msg@plt>
  jmp    L121
  lea    -0x50(%rbp),%rax
  mov    %rax,%rdi
  call   <lcd_msg@plt>
  mov    $0xc0,%edi
  call   <lcd_clear@plt>
  jmp    L121
  lea    -0x1a(%rbp),%rax
  mov    %rax,%rdi
  call   <lcd_msg@plt>
  jmp    L121
  lea    -0x49(%rbp),%rax
  mov    %rax,%rdi
  call   <lcd_msg@plt>
  mov    $0x90,%edi
  call   <lcd_clear@plt>
  jmp    L121
  lea    -0x11(%rbp),%rax
  mov    %rax,%rdi
  call   <lcd_msg@plt>
  jmp    L121
  lea    -0x42(%rbp),%rax
  mov    %rax,%rdi
  call   <lcd_msg@plt>
  nop
L121:
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L34
  call   <__stack_chk_fail@plt>
L34:
  leave
  ret
```

assistant: ```c
void lcd_disp_inv(int choose) {
  char msg1[] = "1:OK  %";
  char msg2[] = "2:OK%";
  char msg3[] = "3:OK  %";
  char msg4[] = "4:OK%";
  char msg5[] = "5:OK  %";
  char msg6[] = "6:OK%";
  char msg7[] = "1:BAD  %";
  char msg8[] = "2:BAD%";
  char msg9[] = "3:BAD  %";
  char msg10[] = "4:BAD%";
  char msg11[] = "5:BAD  %";
  char msg12[] = "6:BAD%";
  switch (choose) {
  case 1:
    lcd_msg(msg1);
    break;
  case 2:
    lcd_msg(msg2);
    lcd_clear(0xc0);
    break;
  case 3:
    lcd_msg(msg3);
    break;
  case 4:
    lcd_msg(msg4);
    lcd_clear(0x90);
    break;
  case 5:
    lcd_msg(msg5);
    break;
  case 6:
    lcd_msg(msg6);
    break;
  case 7:
    lcd_msg(msg7);
    break;
  case 8:
    lcd_msg(msg8);
    lcd_clear(0xc0);
    break;
  case 9:
    lcd_msg(msg9);
    break;
  case 10:
    lcd_msg(msg10);
    lcd_clear(0x90);
    break;
  case 11:
    lcd_msg(msg11);
    break;
  case 12:
    lcd_msg(msg12);
    break;
  }
}
```