user: Please show me the C implementation that matches the assembly code listed below:

```asm
<print_mxcsr>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %esi,-0xc(%rbp)
  mov    -0xc(%rbp),%edx
  mov    -0x8(%rbp),%rax
  lea    D68(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fprintf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rcx
  mov    $0xd,%edx
  mov    $0x1,%esi
  lea    D248(%rip),%rax
  mov    %rax,%rdi
  call   <fwrite@plt>
  mov    -0xc(%rbp),%eax
  and    $0x8000,%eax
  test   %eax,%eax
  je     L146
  lea    D49(%rip),%rax
  jmp    L97
L146:
  lea    D94(%rip),%rax
L97:
  mov    -0x8(%rbp),%rcx
  mov    %rax,%rdx
  lea    D106(%rip),%rax
  mov    %rax,%rsi
  mov    %rcx,%rdi
  mov    $0x0,%eax
  call   <fprintf@plt>
  mov    -0xc(%rbp),%eax
  and    $0x40,%eax
  test   %eax,%eax
  je     L129
  lea    D49(%rip),%rax
  jmp    L85
L129:
  lea    D94(%rip),%rax
L85:
  mov    -0x8(%rbp),%rcx
  mov    %rax,%rdx
  lea    D124(%rip),%rax
  mov    %rax,%rsi
  mov    %rcx,%rdi
  mov    $0x0,%eax
  call   <fprintf@plt>
  mov    -0xc(%rbp),%edx
  mov    -0x8(%rbp),%rax
  mov    %edx,%esi
  mov    %rax,%rdi
  call   <print_mxcsr_exception_flags@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rcx
  mov    $0x10,%edx
  mov    $0x1,%esi
  lea    D122(%rip),%rax
  mov    %rax,%rdi
  call   <fwrite@plt>
  mov    -0xc(%rbp),%eax
  and    $0x1000,%eax
  test   %eax,%eax
  je     L69
  lea    D49(%rip),%rax
  jmp    L106
L69:
  lea    D94(%rip),%rax
L106:
  mov    -0x8(%rbp),%rcx
  mov    %rax,%rdx
  lea    D75(%rip),%rax
  mov    %rax,%rsi
  mov    %rcx,%rdi
  mov    $0x0,%eax
  call   <fprintf@plt>
  mov    -0xc(%rbp),%eax
  and    $0x800,%eax
  test   %eax,%eax
  je     L14
  lea    D49(%rip),%rax
  jmp    L136
L14:
  lea    D94(%rip),%rax
L136:
  mov    -0x8(%rbp),%rcx
  mov    %rax,%rdx
  lea    D223(%rip),%rax
  mov    %rax,%rsi
  mov    %rcx,%rdi
  mov    $0x0,%eax
  call   <fprintf@plt>
  mov    -0xc(%rbp),%eax
  and    $0x400,%eax
  test   %eax,%eax
  je     L0
  lea    D49(%rip),%rax
  jmp    L8
L0:
  lea    D94(%rip),%rax
L8:
  mov    -0x8(%rbp),%rcx
  mov    %rax,%rdx
  lea    D112(%rip),%rax
  mov    %rax,%rsi
  mov    %rcx,%rdi
  mov    $0x0,%eax
  call   <fprintf@plt>
  mov    -0xc(%rbp),%eax
  and    $0x200,%eax
  test   %eax,%eax
  je     L143
  lea    D49(%rip),%rax
  jmp    L93
L143:
  lea    D94(%rip),%rax
L93:
  mov    -0x8(%rbp),%rcx
  mov    %rax,%rdx
  lea    D185(%rip),%rax
  mov    %rax,%rsi
  mov    %rcx,%rdi
  mov    $0x0,%eax
  call   <fprintf@plt>
  mov    -0xc(%rbp),%eax
  and    $0x100,%eax
  test   %eax,%eax
  je     L84
  lea    D49(%rip),%rax
  jmp    L107
L84:
  lea    D94(%rip),%rax
L107:
  mov    -0x8(%rbp),%rcx
  mov    %rax,%rdx
  lea    D28(%rip),%rax
  mov    %rax,%rsi
  mov    %rcx,%rdi
  mov    $0x0,%eax
  call   <fprintf@plt>
  mov    -0xc(%rbp),%eax
  and    $0x80,%eax
  test   %eax,%eax
  je     L39
  lea    D49(%rip),%rax
  jmp    L141
L39:
  lea    D94(%rip),%rax
L141:
  mov    -0x8(%rbp),%rcx
  mov    %rax,%rdx
  lea    D4(%rip),%rax
  mov    %rax,%rsi
  mov    %rcx,%rdi
  mov    $0x0,%eax
  call   <fprintf@plt>
  nop
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_label: D68
datatype: string
name: parse_data
arguments: data_label: D248
datatype: string
name: parse_data
arguments: data_label: D49
datatype: string
name: parse_data
arguments: data_label: D94
datatype: string
name: parse_data
arguments: data_label: D106
datatype: string
name: parse_data
arguments: data_label: D124
datatype: string
name: parse_data
arguments: data_label: D122
datatype: string
name: parse_data
arguments: data_label: D75
datatype: string
name: parse_data
arguments: data_label: D223
datatype: string
name: parse_data
arguments: data_label: D112
datatype: string
name: parse_data
arguments: data_label: D185
datatype: string
name: parse_data
arguments: data_label: D28
datatype: string
name: parse_data
arguments: data_label: D4
datatype: string

tool: D68: value: %04x


tool: D248: Calculations


tool: D49: yes

tool: D94: no

tool: D106: * flush to zero     : %s


tool: D124: * denormals are zero: %s


tool: D122: Exception masks


tool: D75: * precision         : %s


tool: D223: * underflow         : %s


tool: D112: * overflow          : %s


tool: D185: * divide by zero    : %s


tool: D28: * denormal          : %s


tool: D4: * 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"));
}
```