user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<get_sse>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    $0xb,%edi
  call   <get_cputype@plt>
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  and    $0x100,%eax
  test   %eax,%eax
  je     L66
  lea    D109(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L66:
  mov    -0x4(%rbp),%eax
  and    $0x1,%eax
  test   %eax,%eax
  je     L47
  lea    D94(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L47:
  mov    -0x4(%rbp),%eax
  and    $0x2,%eax
  test   %eax,%eax
  je     L55
  lea    D10(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L55:
  mov    -0x4(%rbp),%eax
  and    $0x4,%eax
  test   %eax,%eax
  je     L73
  lea    D3(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L73:
  mov    -0x4(%rbp),%eax
  and    $0x8,%eax
  test   %eax,%eax
  je     L104
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L104:
  mov    -0x4(%rbp),%eax
  and    $0x10,%eax
  test   %eax,%eax
  je     L83
  lea    D9(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L83:
  mov    -0x4(%rbp),%eax
  and    $0x20,%eax
  test   %eax,%eax
  je     L114
  lea    D16(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L114:
  mov    -0x4(%rbp),%eax
  and    $0x40,%eax
  test   %eax,%eax
  je     L24
  lea    D21(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L24:
  mov    -0x4(%rbp),%eax
  and    $0x80,%eax
  test   %eax,%eax
  je     L76
  lea    D104(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L76:
  mov    -0x4(%rbp),%eax
  and    $0x40000,%eax
  test   %eax,%eax
  je     L61
  lea    D105(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L61:
  mov    -0x4(%rbp),%eax
  and    $0x400,%eax
  test   %eax,%eax
  je     L22
  lea    D78(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L22:
  mov    -0x4(%rbp),%eax
  and    $0x200,%eax
  test   %eax,%eax
  je     L32
  lea    D110(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L32:
  nop
  leave
  ret
```

tool_calls: name: read_data
arguments: data_label: D109
data_type: string
name: read_data
arguments: data_label: D94
data_type: string
name: read_data
arguments: data_label: D10
data_type: string
name: read_data
arguments: data_label: D3
data_type: string
name: read_data
arguments: data_label: D61
data_type: string
name: read_data
arguments: data_label: D9
data_type: string
name: read_data
arguments: data_label: D16
data_type: string
name: read_data
arguments: data_label: D21
data_type: string
name: read_data
arguments: data_label: D104
data_type: string
name: read_data
arguments: data_label: D105
data_type: string
name: read_data
arguments: data_label: D78
data_type: string
name: read_data
arguments: data_label: D110
data_type: string

tool: D109: HAVE_MMX=1


tool: D94: HAVE_SSE=1


tool: D10: HAVE_SSE2=1


tool: D3: HAVE_SSE3=1


tool: D61: HAVE_SSSE3=1


tool: D9: HAVE_SSE4_1=1


tool: D16: HAVE_SSE4_2=1


tool: D21: HAVE_SSE4A=1


tool: D104: HAVE_SSSE5=1


tool: D105: HAVE_AVX=1


tool: D78: HAVE_3DNOWEX=1


tool: D110: HAVE_3DNOW=1


assistant: ```c
void get_sse(void) {
  int features;
  features = get_cputype(11);
  if (features & (1 << 8))
    printf("HAVE_MMX=1\n");
  if (features & (1 << 0))
    printf("HAVE_SSE=1\n");
  if (features & (1 << 1))
    printf("HAVE_SSE2=1\n");
  if (features & (1 << 2))
    printf("HAVE_SSE3=1\n");
  if (features & (1 << 3))
    printf("HAVE_SSSE3=1\n");
  if (features & (1 << 4))
    printf("HAVE_SSE4_1=1\n");
  if (features & (1 << 5))
    printf("HAVE_SSE4_2=1\n");
  if (features & (1 << 6))
    printf("HAVE_SSE4A=1\n");
  if (features & (1 << 7))
    printf("HAVE_SSSE5=1\n");
  if (features & (1 << 18))
    printf("HAVE_AVX=1\n");
  if (features & (1 << 10))
    printf("HAVE_3DNOWEX=1\n");
  if (features & (1 << 9))
    printf("HAVE_3DNOW=1\n");
}
```