user: What is the c source code of the assembly code below:

```asm
<get_cpuconfig>:
  endbr64
  sub    $0x8,%rsp
  xor    %eax,%eax
  call   <detect@plt>
  cmp    $0x1,%eax
  je     L32
  xor    %eax,%eax
  call   <detect@plt>
  cmp    $0x2,%eax
  je     L29
  xor    %eax,%eax
  call   <detect@plt>
  cmp    $0x3,%eax
  je     L22
  lea    D133(%rip),%rdi
  add    $0x8,%rsp
  jmp    1060 <printf@plt>
  nopl   0x0(%rax)
L29:
  lea    D191(%rip),%rdi
  call   <printf@plt>
  lea    D114(%rip),%rdi
  call   <printf@plt>
  lea    D2(%rip),%rdi
  call   <printf@plt>
  lea    D76(%rip),%rdi
L31:
  call   <printf@plt>
  lea    D68(%rip),%rdi
  call   <printf@plt>
  lea    D174(%rip),%rdi
  call   <printf@plt>
  lea    D198(%rip),%rdi
  add    $0x8,%rsp
  jmp    1060 <printf@plt>
L32:
  lea    D55(%rip),%rdi
  call   <printf@plt>
  lea    D73(%rip),%rdi
  call   <printf@plt>
  lea    D2(%rip),%rdi
  call   <printf@plt>
  lea    D82(%rip),%rdi
  call   <printf@plt>
  lea    D106(%rip),%rdi
  call   <printf@plt>
  lea    D61(%rip),%rdi
  call   <printf@plt>
  lea    D174(%rip),%rdi
  call   <printf@plt>
  lea    D121(%rip),%rdi
  add    $0x8,%rsp
  jmp    1060 <printf@plt>
  nopl   0x0(%rax)
L22:
  lea    D128(%rip),%rdi
  call   <printf@plt>
  lea    D114(%rip),%rdi
  call   <printf@plt>
  lea    D2(%rip),%rdi
  call   <printf@plt>
  lea    D48(%rip),%rdi
  jmp    L31
```

tool_calls: name: unpack_data
arguments: tag: D133
data_type: string
name: unpack_data
arguments: tag: D191
data_type: string
name: unpack_data
arguments: tag: D114
data_type: string
name: unpack_data
arguments: tag: D2
data_type: string
name: unpack_data
arguments: tag: D76
data_type: string
name: unpack_data
arguments: tag: D68
data_type: string
name: unpack_data
arguments: tag: D174
data_type: string
name: unpack_data
arguments: tag: D198
data_type: string
name: unpack_data
arguments: tag: D55
data_type: string
name: unpack_data
arguments: tag: D73
data_type: string
name: unpack_data
arguments: tag: D82
data_type: string
name: unpack_data
arguments: tag: D106
data_type: string
name: unpack_data
arguments: tag: D61
data_type: string
name: unpack_data
arguments: tag: D121
data_type: string
name: unpack_data
arguments: tag: D128
data_type: string
name: unpack_data
arguments: tag: D48
data_type: string

tool: D133: #define UNKNOWN


tool: D191: #define MIPS1004K


tool: D114: #define L1_DATA_SIZE 32768


tool: D2: #define L1_DATA_LINESIZE 32


tool: D76: #define L2_SIZE 262144


tool: D68: #define DTB_DEFAULT_ENTRIES 8


tool: D174: #define DTB_SIZE 4096


tool: D198: #define L2_ASSOCIATIVE 4


tool: D55: #define P5600


tool: D73: #define L1_DATA_SIZE 65536


tool: D82: #define L2_SIZE 1048576


tool: D106: #define L2_LINESIZE 32


tool: D61: #define DTB_DEFAULT_ENTRIES 64


tool: D121: #define L2_ASSOCIATIVE 8


tool: D128: #define MIPS24K


tool: D48: #define L2_SIZE 32768


assistant: ```c
void get_cpuconfig(void) {
  if (detect() == 1) {
    printf("#define P5600\n");
    printf("#define L1_DATA_SIZE 65536\n");
    printf("#define L1_DATA_LINESIZE 32\n");
    printf("#define L2_SIZE 1048576\n");
    printf("#define L2_LINESIZE 32\n");
    printf("#define DTB_DEFAULT_ENTRIES 64\n");
    printf("#define DTB_SIZE 4096\n");
    printf("#define L2_ASSOCIATIVE 8\n");
  } else if (detect() == 2) {
    printf("#define MIPS1004K\n");
    printf("#define L1_DATA_SIZE 32768\n");
    printf("#define L1_DATA_LINESIZE 32\n");
    printf("#define L2_SIZE 262144\n");
    printf("#define DTB_DEFAULT_ENTRIES 8\n");
    printf("#define DTB_SIZE 4096\n");
    printf("#define L2_ASSOCIATIVE 4\n");
  } else if (detect() == 3) {
    printf("#define MIPS24K\n");
    printf("#define L1_DATA_SIZE 32768\n");
    printf("#define L1_DATA_LINESIZE 32\n");
    printf("#define L2_SIZE 32768\n");
    printf("#define DTB_DEFAULT_ENTRIES 8\n");
    printf("#define DTB_SIZE 4096\n");
    printf("#define L2_ASSOCIATIVE 4\n");
  } else {
    printf("#define UNKNOWN\n");
  }
}
```