user: Translate the below assembly code into C programming language:

```asm
<get_real_mac_osx>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  lea    D160(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L53
  lea    D115(%rip),%rax
  mov    %rax,%rdi
  call   <alloc_string@plt>
  jmp    L17
L53:
  mov    -0x8(%rbp),%rax
  lea    D192(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L131
  lea    D219(%rip),%rax
  mov    %rax,%rdi
  call   <alloc_string@plt>
  jmp    L17
L131:
  mov    -0x8(%rbp),%rax
  lea    D203(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L78
  lea    D139(%rip),%rax
  mov    %rax,%rdi
  call   <alloc_string@plt>
  jmp    L17
L78:
  mov    -0x8(%rbp),%rax
  lea    D140(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L50
  lea    D200(%rip),%rax
  mov    %rax,%rdi
  call   <alloc_string@plt>
  jmp    L17
L50:
  mov    -0x8(%rbp),%rax
  lea    D14(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L2
  lea    D98(%rip),%rax
  mov    %rax,%rdi
  call   <alloc_string@plt>
  jmp    L17
L2:
  mov    -0x8(%rbp),%rax
  lea    D183(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L142
  lea    D93(%rip),%rax
  mov    %rax,%rdi
  call   <alloc_string@plt>
  jmp    L17
L142:
  mov    -0x8(%rbp),%rax
  lea    D166(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L116
  lea    D54(%rip),%rax
  mov    %rax,%rdi
  call   <alloc_string@plt>
  jmp    L17
L116:
  mov    -0x8(%rbp),%rax
  lea    D197(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L120
  lea    D138(%rip),%rax
  mov    %rax,%rdi
  call   <alloc_string@plt>
  jmp    L17
L120:
  mov    -0x8(%rbp),%rax
  lea    D152(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L9
  lea    D187(%rip),%rax
  mov    %rax,%rdi
  call   <alloc_string@plt>
  jmp    L17
L9:
  mov    -0x8(%rbp),%rax
  lea    D169(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L70
  lea    D213(%rip),%rax
  mov    %rax,%rdi
  call   <alloc_string@plt>
  jmp    L17
L70:
  mov    -0x8(%rbp),%rax
  lea    D158(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L141
  lea    D84(%rip),%rax
  mov    %rax,%rdi
  call   <alloc_string@plt>
  jmp    L17
L141:
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <alloc_string@plt>
L17:
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: label: D160
type_guessed: string
name: retrieve_data
arguments: label: D115
type_guessed: string
name: retrieve_data
arguments: label: D192
type_guessed: string
name: retrieve_data
arguments: label: D219
type_guessed: string
name: retrieve_data
arguments: label: D203
type_guessed: string
name: retrieve_data
arguments: label: D139
type_guessed: string
name: retrieve_data
arguments: label: D140
type_guessed: string
name: retrieve_data
arguments: label: D200
type_guessed: string
name: retrieve_data
arguments: label: D14
type_guessed: string
name: retrieve_data
arguments: label: D98
type_guessed: string
name: retrieve_data
arguments: label: D183
type_guessed: string
name: retrieve_data
arguments: label: D93
type_guessed: string
name: retrieve_data
arguments: label: D166
type_guessed: string
name: retrieve_data
arguments: label: D54
type_guessed: string
name: retrieve_data
arguments: label: D197
type_guessed: string
name: retrieve_data
arguments: label: D138
type_guessed: string
name: retrieve_data
arguments: label: D152
type_guessed: string
name: retrieve_data
arguments: label: D187
type_guessed: string
name: retrieve_data
arguments: label: D169
type_guessed: string
name: retrieve_data
arguments: label: D213
type_guessed: string
name: retrieve_data
arguments: label: D158
type_guessed: string
name: retrieve_data
arguments: label: D84
type_guessed: string

tool: D160: 10.10

tool: D115: OS X Yosemite

tool: D192: 10.9

tool: D219: OS X Mavericks

tool: D203: 10.8

tool: D139: OS X Mountain Lion

tool: D140: 10.7

tool: D200: OS X Lion

tool: D14: 10.6

tool: D98: OS X Snow Leopard

tool: D183: 10.5

tool: D93: OS X Leopard

tool: D166: 10.4

tool: D54: OS X Tiger

tool: D197: 10.3

tool: D138: OS X Panther

tool: D152: 10.2

tool: D187: OS X Jaguar

tool: D169: 10.1

tool: D213: OS X Puma

tool: D158: 10.0

tool: D84: OS X Cheetah

assistant: ```c
char *get_real_mac_osx(const char *osx) {
  if (strstr(osx, "10.10"))
    return alloc_string("OS X Yosemite");
  else if (strstr(osx, "10.9"))
    return alloc_string("OS X Mavericks");
  else if (strstr(osx, "10.8"))
    return alloc_string("OS X Mountain Lion");
  else if (strstr(osx, "10.7"))
    return alloc_string("OS X Lion");
  else if (strstr(osx, "10.6"))
    return alloc_string("OS X Snow Leopard");
  else if (strstr(osx, "10.5"))
    return alloc_string("OS X Leopard");
  else if (strstr(osx, "10.4"))
    return alloc_string("OS X Tiger");
  else if (strstr(osx, "10.3"))
    return alloc_string("OS X Panther");
  else if (strstr(osx, "10.2"))
    return alloc_string("OS X Jaguar");
  else if (strstr(osx, "10.1"))
    return alloc_string("OS X Puma");
  else if (strstr(osx, "10.0"))
    return alloc_string("OS X Cheetah");
  return alloc_string(osx);
}
```