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

```asm
<terminalName>:
  endbr64
  push   %r12
  pxor   %xmm0,%xmm0
  push   %rbp
  sub    $0x58,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x48(%rsp)
  xor    %eax,%eax
  movzbl D130(%rip),%eax
  movq   $0x2a,(%rsp)
  movq   $0x0,0x8(%rsp)
  movaps %xmm0,0x10(%rsp)
  movaps %xmm0,0x20(%rsp)
  movaps %xmm0,0x30(%rsp)
  cmp    $0x2a,%al
  je     L26
L67:
  test   %al,%al
  je     L106
  lea    D130(%rip),%rax
L241:
  mov    0x48(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L337
  add    $0x58,%rsp
  pop    %rbp
  pop    %r12
  ret
  nopl   0x0(%rax)
L26:
  lea    D57(%rip),%rdi
  call   <detectPresence@plt>
  test   %rax,%rax
  jne    L173
  xor    %eax,%eax
  call   <dialogNameOnly@plt>
  test   %rax,%rax
  jne    L242
  xor    %eax,%eax
  call   <whiptailPresentOnly@plt>
  test   %rax,%rax
  jne    L242
  nopl   (%rax)
L106:
  xor    %eax,%eax
  jmp    L241
  nopl   0x0(%rax)
L173:
  mov    %rsp,%r12
  lea    D99(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
L284:
  xor    %eax,%eax
  call   <isDarwin@plt>
  test   %rax,%rax
  je     L358
  lea    D130(%rip),%rbp
  lea    D159(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  test   %rax,%rax
  je     L319
  mov    %rbp,%rdi
  call   <detectPresence@plt>
  test   %rax,%rax
  jne    L86
L319:
  lea    D116(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  movzbl D130(%rip),%eax
  jmp    L67
  nopl   0x0(%rax)
L242:
  mov    %rsp,%r12
  lea    D197(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L284
  nopl   0x0(%rax)
L358:
  lea    D130(%rip),%rbp
  lea    D172(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  test   %rax,%rax
  je     L213
  mov    %rbp,%rdi
  call   <detectPresence@plt>
  test   %rax,%rax
  je     L213
L86:
  lea    D32(%rip),%rsi
L109:
  mov    %rbp,%rdi
  call   <strcat@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  movzbl D130(%rip),%eax
  jmp    L67
  xchg   %ax,%ax
L213:
  lea    D107(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  test   %rax,%rax
  je     L239
  mov    %rbp,%rdi
  call   <detectPresence@plt>
  test   %rax,%rax
  je     L239
L112:
  lea    D67(%rip),%rsi
  jmp    L109
  nopw   0x0(%rax,%rax,1)
L239:
  lea    D221(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  test   %rax,%rax
  je     L97
  mov    %rbp,%rdi
  call   <detectPresence@plt>
  test   %rax,%rax
  je     L97
L115:
  lea    D69(%rip),%rsi
  jmp    L109
  nopw   0x0(%rax,%rax,1)
L97:
  lea    D217(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  test   %rax,%rax
  jne    L6
L118:
  lea    D39(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  test   %rax,%rax
  je     L342
  mov    %rbp,%rdi
  call   <detectPresence@plt>
  test   %rax,%rax
  jne    L115
L342:
  lea    D33(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  test   %rax,%rax
  je     L290
  mov    %rbp,%rdi
  call   <detectPresence@plt>
  test   %rax,%rax
  jne    L112
L290:
  lea    D227(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  test   %rax,%rax
  je     L149
  mov    %rbp,%rdi
  call   <detectPresence@plt>
  test   %rax,%rax
  jne    L112
L149:
  lea    D195(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  test   %rax,%rax
  je     L151
  mov    %rbp,%rdi
  call   <detectPresence@plt>
  test   %rax,%rax
  jne    L115
L151:
  lea    D151(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  test   %rax,%rax
  je     L16
  mov    %rbp,%rdi
  call   <detectPresence@plt>
  test   %rax,%rax
  jne    L115
L16:
  lea    D233(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcpy@plt>
  test   %rax,%rax
  je     L319
  mov    %rbp,%rdi
  call   <detectPresence@plt>
  test   %rax,%rax
  je     L319
  jmp    L115
  nopl   0x0(%rax,%rax,1)
L6:
  mov    %rbp,%rdi
  call   <detectPresence@plt>
  test   %rax,%rax
  je     L118
  jmp    L115
L337:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: retrieve_data
arguments: label: D57
type_infered: string
name: retrieve_data
arguments: label: D99
type_infered: string
name: retrieve_data
arguments: label: D159
type_infered: string
name: retrieve_data
arguments: label: D116
type_infered: string
name: retrieve_data
arguments: label: D197
type_infered: string
name: retrieve_data
arguments: label: D172
type_infered: string
name: retrieve_data
arguments: label: D32
type_infered: string
name: retrieve_data
arguments: label: D107
type_infered: string
name: retrieve_data
arguments: label: D67
type_infered: string
name: retrieve_data
arguments: label: D221
type_infered: string
name: retrieve_data
arguments: label: D69
type_infered: string
name: retrieve_data
arguments: label: D217
type_infered: string
name: retrieve_data
arguments: label: D39
type_infered: string
name: retrieve_data
arguments: label: D33
type_infered: string
name: retrieve_data
arguments: label: D227
type_infered: string
name: retrieve_data
arguments: label: D195
type_infered: string
name: retrieve_data
arguments: label: D151
type_infered: string
name: retrieve_data
arguments: label: D233
type_infered: string

tool: D57: bash

tool: D99: bash -c 

tool: D159: /opt/X11/bin/xterm

tool: 

tool: D197: sh -c 

tool: D172: xterm

tool: D32:  -fa 'DejaVu Sans Mono' -fs 10 -title tinyfiledialogs -e 

tool: D107: terminator

tool: D67:  -x 

tool: D221: lxterminal

tool: D69:  -e 

tool: D217: konsole

tool: D39: kterm

tool: D33: xfce4-terminal

tool: D227: mate-terminal

tool: D195: Eterm

tool: D151: evilvte

tool: D233: pterm

assistant: ```c
char const *terminalName() {
  static char lTerminalName[128] = "*";
  char lShellName[64] = "*";
  if (lTerminalName[0] == '*') {
    if (detectPresence("bash")) {
      strcpy(lShellName, "bash -c ");
    } else if (dialogNameOnly() || whiptailPresentOnly()) {
      strcpy(lShellName, "sh -c ");
    } else {
      return NULL;
    }
    if (isDarwin()) {
      if (strcpy(lTerminalName, "/opt/X11/bin/xterm") && detectPresence(lTerminalName)) {
        strcat(lTerminalName, " -fa 'DejaVu Sans Mono' -fs 10 -title tinyfiledialogs -e ");
        strcat(lTerminalName, lShellName);
      } else {
        strcpy(lTerminalName, "");
      }
    } else if (strcpy(lTerminalName, "xterm") && detectPresence(lTerminalName)) {
      strcat(lTerminalName, " -fa 'DejaVu Sans Mono' -fs 10 -title tinyfiledialogs -e ");
      strcat(lTerminalName, lShellName);
    } else if (strcpy(lTerminalName, "terminator") && detectPresence(lTerminalName)) {
      strcat(lTerminalName, " -x ");
      strcat(lTerminalName, lShellName);
    } else if (strcpy(lTerminalName, "lxterminal") && detectPresence(lTerminalName)) {
      strcat(lTerminalName, " -e ");
      strcat(lTerminalName, lShellName);
    } else if (strcpy(lTerminalName, "konsole") && detectPresence(lTerminalName)) {
      strcat(lTerminalName, " -e ");
      strcat(lTerminalName, lShellName);
    } else if (strcpy(lTerminalName, "kterm") && detectPresence(lTerminalName)) {
      strcat(lTerminalName, " -e ");
      strcat(lTerminalName, lShellName);
    } else if (strcpy(lTerminalName, "xfce4-terminal") && detectPresence(lTerminalName)) {
      strcat(lTerminalName, " -x ");
      strcat(lTerminalName, lShellName);
    } else if (strcpy(lTerminalName, "mate-terminal") && detectPresence(lTerminalName)) {
      strcat(lTerminalName, " -x ");
      strcat(lTerminalName, lShellName);
    } else if (strcpy(lTerminalName, "Eterm") && detectPresence(lTerminalName)) {
      strcat(lTerminalName, " -e ");
      strcat(lTerminalName, lShellName);
    } else if (strcpy(lTerminalName, "evilvte") && detectPresence(lTerminalName)) {
      strcat(lTerminalName, " -e ");
      strcat(lTerminalName, lShellName);
    } else if (strcpy(lTerminalName, "pterm") && detectPresence(lTerminalName)) {
      strcat(lTerminalName, " -e ");
      strcat(lTerminalName, lShellName);
    } else {
      strcpy(lTerminalName, "");
    }
  }
  if (strlen(lTerminalName)) {
    return lTerminalName;
  } else {
    return NULL;
  }
}
```