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

```asm
<get_x86_cpu_extended_flags>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0xc8,%rsp
  mov    %rcx,0xb0(%rsp)
  mov    %r8,0xb8(%rsp)
  test   %edi,%edi
  jne    L48
  lea    D333(%rip),%rcx
  test   $0x10000000,%esi
  lea    D124(%rip),%rax
  cmove  %rcx,%rax
  test   $0x8000000,%esi
  lea    D344(%rip),%r8
  mov    %rax,0xa8(%rsp)
  lea    D68(%rip),%rax
  cmove  %rcx,%rax
  test   $0x2000000,%esi
  mov    %rax,0xa0(%rsp)
  lea    D412(%rip),%rax
  cmove  %rcx,%rax
  test   $0x1000000,%esi
  mov    %rax,0x98(%rsp)
  lea    D364(%rip),%rax
  cmove  %rcx,%rax
  test   $0x800000,%esi
  mov    %rax,0x90(%rsp)
  lea    D104(%rip),%rax
  cmove  %rcx,%rax
  test   $0x400000,%esi
  mov    %rax,0x88(%rsp)
  lea    D365(%rip),%rax
  cmove  %rcx,%rax
  test   $0x200000,%esi
  mov    %rax,0x80(%rsp)
  lea    D35(%rip),%rax
  cmove  %rcx,%rax
  test   $0x80000,%esi
  mov    %rax,0x78(%rsp)
  lea    D151(%rip),%rax
  cmove  %rcx,%rax
  test   $0x20000,%esi
  mov    %rax,0x70(%rsp)
  lea    D164(%rip),%rax
  cmove  %rcx,%rax
  test   $0x10000,%esi
  mov    %rax,0x68(%rsp)
  lea    D386(%rip),%rax
  cmove  %rcx,%rax
  test   $0x8000,%esi
  mov    %rax,0x60(%rsp)
  lea    D77(%rip),%rax
  cmove  %rcx,%rax
  test   $0x2000,%esi
  mov    %rax,0x58(%rsp)
  lea    D395(%rip),%rax
  cmove  %rcx,%rax
  test   $0x1000,%esi
  mov    %rax,0x50(%rsp)
  lea    D292(%rip),%rax
  cmove  %rcx,%rax
  test   $0x800,%esi
  mov    %rax,0x48(%rsp)
  lea    D385(%rip),%rax
  cmove  %rcx,%rax
  test   $0x400,%esi
  mov    %rax,0x40(%rsp)
  lea    D218(%rip),%rax
  cmove  %rcx,%rax
  test   $0x200,%esi
  mov    %rax,0x38(%rsp)
  lea    D396(%rip),%rax
  cmove  %rcx,%rax
  test   $0x100,%esi
  mov    %rax,0x30(%rsp)
  lea    D0(%rip),%rax
  cmove  %rcx,%rax
  test   $0x80,%sil
  mov    %rax,0x28(%rsp)
  lea    D222(%rip),%rax
  cmove  %rcx,%rax
  test   $0x40,%sil
  cmovne %r8,%rcx
  mov    %rcx,0x8(%rsp)
L15:
  test   $0x20,%sil
  lea    D333(%rip),%r8
  lea    D183(%rip),%rcx
  cmove  %r8,%rcx
  mov    %rcx,0x10(%rsp)
  mov    %esi,%ecx
  and    $0x1,%ecx
  test   %edi,%edi
  jne    L43
  test   $0x10,%sil
  lea    D336(%rip),%r9
  lea    D53(%rip),%r14
  cmove  %r8,%r9
  test   $0x8,%sil
  lea    D150(%rip),%r13
  lea    D358(%rip),%r15
  lea    D176(%rip),%rbp
  mov    %r9,0x20(%rsp)
  lea    D378(%rip),%r9
  cmove  %r8,%r9
  test   $0x4,%sil
  cmove  %r8,%r14
  and    $0x2,%esi
  cmove  %r8,%r13
  test   %ecx,%ecx
  mov    %r9,0x18(%rsp)
  cmove  %r8,%r15
  lea    D50(%rip),%rcx
  test   %edx,%edx
  cmovns %r8,%rcx
  test   $0x40000000,%edx
  cmove  %r8,%rbp
L62:
  lea    D333(%rip),%r12
  test   $0x20000000,%edx
  mov    %edx,%r8d
  lea    D219(%rip),%r10
  lea    D338(%rip),%r11
  cmove  %r12,%r10
  test   $0x8000000,%edx
  lea    D265(%rip),%rbx
  cmove  %r12,%r11
  test   $0x4000000,%edx
  cmove  %r12,%rbx
  and    $0x100000,%r8d
  test   %edi,%edi
  jne    L69
  test   $0x2000000,%edx
  lea    D204(%rip),%rsi
  lea    D194(%rip),%rdi
  cmove  %r12,%rsi
  test   $0x400000,%edx
  lea    D367(%rip),%r9
  cmove  %r12,%rdi
  test   %r8d,%r8d
  cmove  %r12,%r9
  lea    D169(%rip),%r8
  test   $0x80000,%edx
  cmove  %r12,%r8
L9:
  and    $0x8,%dh
  lea    D23(%rip),%r12
  push   0xa8(%rsp)
  lea    D333(%rip),%rdx
  push   0xa8(%rsp)
  cmove  %rdx,%r12
  push   0xa8(%rsp)
  lea    D393(%rip),%rdx
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   %rax
  push   0x98(%rsp)
  push   0xa8(%rsp)
  push   0xc0(%rsp)
  push   0xc0(%rsp)
  push   %r14
  push   %r13
  push   %r15
  push   %rcx
  mov    %r12,%rcx
  push   %rbp
  push   %r10
  push   %r11
  push   %rbx
  push   %rsi
  push   %rdi
  mov    0x1b8(%rsp),%rsi
  mov    0x1b0(%rsp),%rdi
  call   <snprintf@plt>
  add    $0x1c8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   (%rax)
L48:
  lea    D333(%rip),%rax
  mov    %rax,0x28(%rsp)
  mov    %rax,0x30(%rsp)
  mov    %rax,0x38(%rsp)
  mov    %rax,0x40(%rsp)
  mov    %rax,0x48(%rsp)
  mov    %rax,0x50(%rsp)
  mov    %rax,0x58(%rsp)
  mov    %rax,0x60(%rsp)
  mov    %rax,0x68(%rsp)
  mov    %rax,0x70(%rsp)
  mov    %rax,0x78(%rsp)
  mov    %rax,0x80(%rsp)
  mov    %rax,0x88(%rsp)
  mov    %rax,0x90(%rsp)
  mov    %rax,0x98(%rsp)
  mov    %rax,0xa0(%rsp)
  mov    %rax,0xa8(%rsp)
  mov    %rax,0x8(%rsp)
  jmp    L15
  nopl   0x0(%rax,%rax,1)
L69:
  mov    %r12,%rsi
  test   %r8d,%r8d
  je     L56
  lea    D367(%rip),%r9
  mov    %r12,%rdi
  mov    %r12,%r8
  jmp    L9
  nopw   0x0(%rax,%rax,1)
L43:
  test   %ecx,%ecx
  mov    %r8,%r15
  mov    %r8,%rcx
  jne    L5
L28:
  mov    %rcx,0x18(%rsp)
  mov    %rcx,%r13
  mov    %rcx,%r14
  mov    %rcx,%rbp
  mov    %rcx,0x20(%rsp)
  jmp    L62
  nopw   0x0(%rax,%rax,1)
L5:
  lea    D358(%rip),%r15
  jmp    L28
  nopl   0x0(%rax)
L56:
  mov    %rsi,%r9
  mov    %rsi,%rdi
  mov    %rsi,%r8
  jmp    L9
```

tool_calls: name: retrieve_data
arguments: label: D333
datatype: string
name: retrieve_data
arguments: label: D124
datatype: string
name: retrieve_data
arguments: label: D344
datatype: string
name: retrieve_data
arguments: label: D68
datatype: string
name: retrieve_data
arguments: label: D412
datatype: string
name: retrieve_data
arguments: label: D364
datatype: string
name: retrieve_data
arguments: label: D104
datatype: string
name: retrieve_data
arguments: label: D365
datatype: string
name: retrieve_data
arguments: label: D35
datatype: string
name: retrieve_data
arguments: label: D151
datatype: string
name: retrieve_data
arguments: label: D164
datatype: string
name: retrieve_data
arguments: label: D386
datatype: string
name: retrieve_data
arguments: label: D77
datatype: string
name: retrieve_data
arguments: label: D395
datatype: string
name: retrieve_data
arguments: label: D292
datatype: string
name: retrieve_data
arguments: label: D385
datatype: string
name: retrieve_data
arguments: label: D218
datatype: string
name: retrieve_data
arguments: label: D396
datatype: string
name: retrieve_data
arguments: label: D0
datatype: string
name: retrieve_data
arguments: label: D222
datatype: string
name: retrieve_data
arguments: label: D183
datatype: string
name: retrieve_data
arguments: label: D336
datatype: string
name: retrieve_data
arguments: label: D53
datatype: string
name: retrieve_data
arguments: label: D150
datatype: string
name: retrieve_data
arguments: label: D358
datatype: string
name: retrieve_data
arguments: label: D176
datatype: string
name: retrieve_data
arguments: label: D378
datatype: string
name: retrieve_data
arguments: label: D50
datatype: string
name: retrieve_data
arguments: label: D219
datatype: string
name: retrieve_data
arguments: label: D338
datatype: string
name: retrieve_data
arguments: label: D265
datatype: string
name: retrieve_data
arguments: label: D204
datatype: string
name: retrieve_data
arguments: label: D194
datatype: string
name: retrieve_data
arguments: label: D367
datatype: string
name: retrieve_data
arguments: label: D169
datatype: string
name: retrieve_data
arguments: label: D23
datatype: string
name: retrieve_data
arguments: label: D393
datatype: string

tool: 

tool: D124: pcx_l2i 

tool: D344: sse4a 

tool: D68: perftsc 

tool: D412: dbx 

tool: D364: perfctr_nb 

tool: D104: perfctr_core 

tool: D365: topoext 

tool: D35: tbm 

tool: D151: nodeid_msr 

tool: D164: tce 

tool: D386: fma4 

tool: D77: lwp 

tool: D395: wdt 

tool: D292: skinit 

tool: D385: xop 

tool: D218: ibs 

tool: D396: osvw 

tool: D0: 3dnowprefetch 

tool: D222: misalignsse 

tool: D183: lzcnt 

tool: D336: cr8_legacy 

tool: D53: svm 

tool: D150: cmp_legacy 

tool: D358: lahf_lm 

tool: D176: 3dnowext 

tool: D378: extapic 

tool: D50: 3dnow 

tool: D219: lm 

tool: D338: rdtscp 

tool: D265: pdpe1gb 

tool: D204: fxsr_opt 

tool: D194: mmxext 

tool: D367: nx 

tool: D169: mp 

tool: D23: syscall 

tool: D393: %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s

assistant: ```c
int get_x86_cpu_extended_flags(int intel, uint32_t ecx, uint32_t edx, char *flags, size_t len) {
  return snprintf(flags, len,
                  ""
                  ""
                  "%s"
                  ""
                  "%s"
                  "%s%s"
                  "%s%s%s"
                  "%s%s%s"
                  "%s%s%s%s"
                  "%s%s%s%s"
                  "%s%s%s%s"
                  "%s%s%s"
                  "%s%s%s"
                  "%s%s%s"
                  "%s%s%s"
                  "%s",
                  edx & 0x00000800 ? "syscall " : "", intel ? "" : (edx & 0x00080000 ? "mp " : ""), edx & 0x00100000 ? "nx " : "", intel ? "" : (edx & 0x00400000 ? "mmxext " : ""), intel ? "" : (edx & 0x02000000 ? "fxsr_opt " : ""), edx & 0x04000000 ? "pdpe1gb " : "", edx & 0x08000000 ? "rdtscp " : "", edx & 0x20000000 ? "lm " : "", intel ? "" : (edx & 0x40000000 ? "3dnowext " : ""), intel ? "" : (edx & 0x80000000 ? "3dnow " : ""), ecx & 0x00000001 ? "lahf_lm " : "", intel ? "" : (ecx & 0x00000002 ? "cmp_legacy " : ""), intel ? "" : (ecx & 0x00000004 ? "svm " : ""), intel ? "" : (ecx & 0x00000008 ? "extapic " : ""), intel ? "" : (ecx & 0x00000010 ? "cr8_legacy " : ""), ecx & 0x00000020 ? "lzcnt " : "", intel ? "" : (ecx & 0x00000040 ? "sse4a " : ""), intel ? "" : (ecx & 0x00000080 ? "misalignsse " : ""), intel ? "" : (ecx & 0x00000100 ? "3dnowprefetch " : ""), intel ? "" : (ecx & 0x00000200 ? "osvw " : ""), intel ? "" : (ecx & 0x00000400 ? "ibs " : ""), intel ? "" : (ecx & 0x00000800 ? "xop " : ""), intel ? "" : (ecx & 0x00001000 ? "skinit " : ""), intel ? "" : (ecx & 0x00002000 ? "wdt " : ""), intel ? "" : (ecx & 0x00008000 ? "lwp " : ""), intel ? "" : (ecx & 0x00010000 ? "fma4 " : ""), intel ? "" : (ecx & 0x00020000 ? "tce " : ""), intel ? "" : (ecx & 0x00080000 ? "nodeid_msr " : ""), intel ? "" : (ecx & 0x00200000 ? "tbm " : ""), intel ? "" : (ecx & 0x00400000 ? "topoext " : ""), intel ? "" : (ecx & 0x00800000 ? "perfctr_core " : ""), intel ? "" : (ecx & 0x01000000 ? "perfctr_nb " : ""), intel ? "" : (ecx & 0x02000000 ? "dbx " : ""), intel ? "" : (ecx & 0x08000000 ? "perftsc " : ""), intel ? "" : (ecx & 0x10000000 ? "pcx_l2i " : ""));
}
```