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

```asm
<print_mxcsr>:
  endbr64
  push   %r13
  mov    %esi,%edx
  xor    %eax,%eax
  lea    D66(%rip),%r13
  push   %r12
  lea    D23(%rip),%r12
  push   %rbp
  mov    %rdi,%rbp
  push   %rbx
  mov    %esi,%ebx
  lea    D71(%rip),%rsi
  sub    $0x8,%rsp
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0xd,%edx
  mov    $0x1,%esi
  lea    D1(%rip),%rdi
  call   <fwrite@plt>
  test   $0x80,%bh
  mov    %r13,%rdx
  mov    %rbp,%rdi
  cmovne %r12,%rdx
  lea    D54(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  test   $0x40,%bl
  mov    %r13,%rdx
  mov    %rbp,%rdi
  cmovne %r12,%rdx
  lea    D104(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %ebx,%esi
  mov    %rbp,%rdi
  call   <print_mxcsr_exception_flags@plt>
  mov    %rbp,%rcx
  mov    $0x10,%edx
  mov    $0x1,%esi
  lea    D14(%rip),%rdi
  call   <fwrite@plt>
  test   $0x10,%bh
  mov    %r13,%rdx
  mov    %rbp,%rdi
  cmovne %r12,%rdx
  lea    D57(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  test   $0x8,%bh
  mov    %r13,%rdx
  mov    %rbp,%rdi
  cmovne %r12,%rdx
  lea    D59(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  test   $0x4,%bh
  mov    %r13,%rdx
  mov    %rbp,%rdi
  cmovne %r12,%rdx
  lea    D11(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  test   $0x2,%bh
  mov    %r13,%rdx
  mov    %rbp,%rdi
  cmovne %r12,%rdx
  lea    D51(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  test   $0x1,%bh
  mov    %r13,%rdx
  mov    %rbp,%rdi
  cmovne %r12,%rdx
  lea    D124(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  and    $0x80,%ebx
  mov    %r13,%rdx
  mov    %rbp,%rdi
  cmovne %r12,%rdx
  add    $0x8,%rsp
  lea    D113(%rip),%rsi
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  jmp    1080 <fprintf@plt>
```

tool_calls: name: parse_data
arguments: data_label: D66
type_infered: string
name: parse_data
arguments: data_label: D23
type_infered: string
name: parse_data
arguments: data_label: D71
type_infered: string
name: parse_data
arguments: data_label: D1
type_infered: string
name: parse_data
arguments: data_label: D54
type_infered: string
name: parse_data
arguments: data_label: D104
type_infered: string
name: parse_data
arguments: data_label: D14
type_infered: string
name: parse_data
arguments: data_label: D57
type_infered: string
name: parse_data
arguments: data_label: D59
type_infered: string
name: parse_data
arguments: data_label: D11
type_infered: string
name: parse_data
arguments: data_label: D51
type_infered: string
name: parse_data
arguments: data_label: D124
type_infered: string
name: parse_data
arguments: data_label: D113
type_infered: string

tool: D66: no

tool: D23: yes

tool: D71: value: %04x


tool: D1: Calculations


tool: D54: * flush to zero     : %s


tool: D104: * denormals are zero: %s


tool: D14: Exception masks


tool: D57: * precision         : %s


tool: D59: * underflow         : %s


tool: D11: * overflow          : %s


tool: D51: * divide by zero    : %s


tool: D124: * denormal          : %s


tool: D113: * invalid operation : %s


assistant: ```c
void print_mxcsr(FILE *f, const uint32_t mxcsr) {
  fprintf(f, "value: %04x\n", mxcsr);
  fprintf(f, "Calculations\n");
  fprintf(f, "* flush to zero     : %s\n", ((mxcsr & (0x8000)) ? "yes" : "no"));
  fprintf(f, "* denormals are zero: %s\n", ((mxcsr & (0x0040)) ? "yes" : "no"));
  print_mxcsr_exception_flags(f, mxcsr);
  fprintf(f, "Exception masks\n");
  fprintf(f, "* precision         : %s\n", ((mxcsr & (0x1000)) ? "yes" : "no"));
  fprintf(f, "* underflow         : %s\n", ((mxcsr & (0x0800)) ? "yes" : "no"));
  fprintf(f, "* overflow          : %s\n", ((mxcsr & (0x0400)) ? "yes" : "no"));
  fprintf(f, "* divide by zero    : %s\n", ((mxcsr & (0x0200)) ? "yes" : "no"));
  fprintf(f, "* denormal          : %s\n", ((mxcsr & (0x0100)) ? "yes" : "no"));
  fprintf(f, "* invalid operation : %s\n", ((mxcsr & (0x0080)) ? "yes" : "no"));
}
```