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

```asm
<debug_determinestyle>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    %edx,%ebx
  mov    %rcx,%r13
  mov    %r8d,%r14d
  mov    %r9,%r12
  mov    0x58(%rsp),%r15
  test   %edi,%edi
  je     L154
  mov    %edi,%ebp
  lea    D89(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  cmp    $0x1,%ebp
  je     L114
L154:
  mov    %ebx,%edi
  call   <showflags@plt>
  mov    %rax,%rdx
  mov    %ebx,%esi
  lea    D54(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  cmpb   $0x0,(%r15)
  jne    L16
L145:
  mov    0x60(%rsp),%rax
  cmpb   $0x0,(%rax)
  jne    L128
L2:
  mov    0x70(%rsp),%rax
  cmpb   $0x0,(%rax)
  jne    L102
L50:
  cmpb   $0x0,0x0(%r13)
  jne    L140
L152:
  cmpb   $0x0,(%r12)
  jne    L95
L63:
  mov    0x48(%rsp),%rax
  cmpb   $0x0,(%rax)
  jne    L55
L125:
  mov    0x68(%rsp),%rax
  cmpb   $0x0,(%rax)
  jne    L52
L114:
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L16:
  mov    %r15,%rsi
  lea    D79(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L145
L128:
  mov    %rax,%rsi
  lea    D50(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L2
L102:
  mov    0x78(%rsp),%edx
  mov    %rax,%rsi
  lea    D51(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L50
L140:
  mov    %r14d,%edx
  mov    %r13,%rsi
  lea    D17(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L152
L95:
  mov    0x40(%rsp),%edx
  mov    %r12,%rsi
  lea    D24(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L63
L55:
  mov    0x50(%rsp),%edx
  mov    %rax,%rsi
  lea    D28(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L125
L52:
  mov    %rax,%rsi
  lea    D35(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L114
```

tool_calls: name: parse_data
arguments: label: D89
data_type: string
name: parse_data
arguments: label: D54
data_type: string
name: parse_data
arguments: label: D79
data_type: string
name: parse_data
arguments: label: D50
data_type: string
name: parse_data
arguments: label: D51
data_type: string
name: parse_data
arguments: label: D17
data_type: string
name: parse_data
arguments: label: D24
data_type: string
name: parse_data
arguments: label: D28
data_type: string
name: parse_data
arguments: label: D35
data_type: string

tool: D89: -------
date: |%s|


tool: D54: flags: %x - %s


tool: D79: modifieroffset: |%s|


tool: D50: modifierindex: |%s|


tool: D51: year: |%s| (%d)


tool: D17: month: |%s| (%d)


tool: D24: dayofmonth: |%s| (%d)


tool: D28: dayofweek: |%s| (%d)


tool: D35: specialday: |%s|


assistant: ```c
void debug_determinestyle(int dateonly, char *date, int flags, char *month, int imonth, char *dayofmonth, int idayofmonth, char *dayofweek, int idayofweek, char *modifieroffset, char *modifierindex, char *specialday, char *year, int iyear) {
  if (dateonly != 0) {
    printf("-------\ndate: |%s|\n", date);
    if (dateonly == 1)
      return;
  }
  printf("flags: %x - %s\n", flags, showflags(flags));
  if (modifieroffset[0] != '\0')
    printf("modifieroffset: |%s|\n", modifieroffset);
  if (modifierindex[0] != '\0')
    printf("modifierindex: |%s|\n", modifierindex);
  if (year[0] != '\0')
    printf("year: |%s| (%d)\n", year, iyear);
  if (month[0] != '\0')
    printf("month: |%s| (%d)\n", month, imonth);
  if (dayofmonth[0] != '\0')
    printf("dayofmonth: |%s| (%d)\n", dayofmonth, idayofmonth);
  if (dayofweek[0] != '\0')
    printf("dayofweek: |%s| (%d)\n", dayofweek, idayofweek);
  if (specialday[0] != '\0')
    printf("specialday: |%s|\n", specialday);
}
```