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

```asm
<OC_mkGenericConstTabEntry>:
  endbr64
  push   %r13
  lea    D2(%rip),%rsi
  push   %r12
  push   %rbp
  mov    %rdi,%rbp
  lea    D166(%rip),%rdi
  call   <OC_mkTabEntry@plt>
  mov    %rbp,%rdi
  mov    %rax,%rsi
  mov    %rax,%r13
  call   <UTIL_appendStr@plt>
  mov    %r13,%rdi
  mov    %rax,%r12
  call   <free@plt>
  mov    %rbp,%rdi
  call   <free@plt>
  lea    D16(%rip),%rsi
  lea    D113(%rip),%rdi
  call   <OC_mkTabEntry@plt>
  mov    %r12,%rdi
  mov    %rax,%rsi
  mov    %rax,%r13
  call   <UTIL_appendStr@plt>
  mov    %r13,%rdi
  mov    %rax,%rbp
  call   <free@plt>
  mov    %r12,%rdi
  call   <free@plt>
  lea    D62(%rip),%rsi
  lea    D83(%rip),%rdi
  call   <OC_mkTabEntry@plt>
  mov    %rbp,%rdi
  mov    %rax,%rsi
  mov    %rax,%r13
  call   <UTIL_appendStr@plt>
  mov    %r13,%rdi
  mov    %rax,%r12
  call   <free@plt>
  mov    %rbp,%rdi
  call   <free@plt>
  lea    D77(%rip),%rsi
  lea    D64(%rip),%rdi
  call   <OC_mkTabEntry@plt>
  mov    %r12,%rdi
  mov    %rax,%rsi
  mov    %rax,%r13
  call   <UTIL_appendStr@plt>
  mov    %r13,%rdi
  mov    %rax,%rbp
  call   <free@plt>
  mov    %r12,%rdi
  call   <free@plt>
  lea    D132(%rip),%rsi
  lea    D68(%rip),%rdi
  call   <OC_mkTabEntry@plt>
  mov    %rbp,%rdi
  mov    %rax,%rsi
  mov    %rax,%r13
  call   <UTIL_appendStr@plt>
  mov    %r13,%rdi
  mov    %rax,%r12
  call   <free@plt>
  mov    %rbp,%rdi
  call   <free@plt>
  lea    D140(%rip),%rsi
  lea    D60(%rip),%rdi
  call   <OC_mkTabEntry@plt>
  mov    %r12,%rdi
  mov    %rax,%rsi
  mov    %rax,%r13
  call   <UTIL_appendStr@plt>
  mov    %r13,%rdi
  mov    %rax,%rbp
  call   <free@plt>
  mov    %r12,%rdi
  call   <free@plt>
  lea    D38(%rip),%rsi
  lea    D73(%rip),%rdi
  call   <OC_mkTabEntry@plt>
  mov    %rbp,%rdi
  mov    %rax,%rsi
  mov    %rax,%r13
  call   <UTIL_appendStr@plt>
  mov    %r13,%rdi
  mov    %rax,%r12
  call   <free@plt>
  mov    %rbp,%rdi
  call   <free@plt>
  lea    D22(%rip),%rsi
  lea    D165(%rip),%rdi
  call   <OC_mkTabEntry@plt>
  mov    %r12,%rdi
  mov    %rax,%rsi
  mov    %rax,%r13
  call   <UTIL_appendStr@plt>
  mov    %r13,%rdi
  mov    %rax,%rbp
  call   <free@plt>
  mov    %r12,%rdi
  call   <free@plt>
  lea    D43(%rip),%rsi
  lea    D84(%rip),%rdi
  call   <OC_mkTabEntry@plt>
  mov    %rbp,%rdi
  mov    %rax,%r12
  mov    %rax,%rsi
  call   <UTIL_appendStr@plt>
  mov    %r12,%rdi
  mov    %rax,%r13
  call   <free@plt>
  mov    %rbp,%rdi
  call   <free@plt>
  mov    %r13,%rax
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D2
type: string
name: extract_symbolic_data
arguments: label: D166
type: string
name: extract_symbolic_data
arguments: label: D16
type: string
name: extract_symbolic_data
arguments: label: D113
type: string
name: extract_symbolic_data
arguments: label: D62
type: string
name: extract_symbolic_data
arguments: label: D83
type: string
name: extract_symbolic_data
arguments: label: D77
type: string
name: extract_symbolic_data
arguments: label: D64
type: string
name: extract_symbolic_data
arguments: label: D132
type: string
name: extract_symbolic_data
arguments: label: D68
type: string
name: extract_symbolic_data
arguments: label: D140
type: string
name: extract_symbolic_data
arguments: label: D60
type: string
name: extract_symbolic_data
arguments: label: D38
type: string
name: extract_symbolic_data
arguments: label: D73
type: string
name: extract_symbolic_data
arguments: label: D22
type: string
name: extract_symbolic_data
arguments: label: D165
type: string
name: extract_symbolic_data
arguments: label: D43
type: string
name: extract_symbolic_data
arguments: label: D84
type: string

tool: D2: overloadUMinusConstant

tool: D166: ~

tool: D16: overloadAbsConstant

tool: D113: abs

tool: D62: overloadPlusConstant

tool: D83: +

tool: D77: overloadMinusConstant

tool: D64: -

tool: D132: overloadTimeConstant

tool: D68: *

tool: D140: overloadLTConstant

tool: D60: <

tool: D38: overloadGTConstant

tool: D73: >

tool: D22: overloadLEConstant

tool: D165: <=

tool: D43: overloadGEConstant

tool: D84: >=

assistant: ```c
char *OC_mkGenericConstTabEntry(char *entries) {
  char *text;
  char *tabEntry;
  tabEntry = OC_mkTabEntry("~", "overloadUMinusConstant");
  text = UTIL_appendStr(entries, tabEntry);
  free(tabEntry);
  free(entries);
  entries = text;
  tabEntry = OC_mkTabEntry("abs", "overloadAbsConstant");
  text = UTIL_appendStr(entries, tabEntry);
  free(tabEntry);
  free(entries);
  entries = text;
  tabEntry = OC_mkTabEntry("+", "overloadPlusConstant");
  text = UTIL_appendStr(entries, tabEntry);
  free(tabEntry);
  free(entries);
  entries = text;
  tabEntry = OC_mkTabEntry("-", "overloadMinusConstant");
  text = UTIL_appendStr(entries, tabEntry);
  free(tabEntry);
  free(entries);
  entries = text;
  tabEntry = OC_mkTabEntry("*", "overloadTimeConstant");
  text = UTIL_appendStr(entries, tabEntry);
  free(tabEntry);
  free(entries);
  entries = text;
  tabEntry = OC_mkTabEntry("<", "overloadLTConstant");
  text = UTIL_appendStr(entries, tabEntry);
  free(tabEntry);
  free(entries);
  entries = text;
  tabEntry = OC_mkTabEntry(">", "overloadGTConstant");
  text = UTIL_appendStr(entries, tabEntry);
  free(tabEntry);
  free(entries);
  entries = text;
  tabEntry = OC_mkTabEntry("<=", "overloadLEConstant");
  text = UTIL_appendStr(entries, tabEntry);
  free(tabEntry);
  free(entries);
  entries = text;
  tabEntry = OC_mkTabEntry(">=", "overloadGEConstant");
  text = UTIL_appendStr(entries, tabEntry);
  free(tabEntry);
  free(entries);
  entries = text;
  return entries;
}
```