user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<OC_mkGenericConstFuncDecs>:
  endbr64
  push   %r12
  push   %rbp
  push   %rbx
  mov    %rdi,%rbp
  lea    D55(%rip),%rdi
  call   <OC_mkIsConstFuncName@plt>
  mov    %rax,%rbx
  mov    %rax,%rdi
  call   <OC_mkIsConstFuncDec@plt>
  mov    %rax,%r12
  mov    %rbx,%rdi
  call   <free@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <UTIL_appendStr@plt>
  mov    %rax,%rbx
  mov    %r12,%rdi
  call   <free@plt>
  mov    %rbp,%rdi
  call   <free@plt>
  lea    D60(%rip),%rdi
  call   <OC_mkIsConstFuncName@plt>
  mov    %rax,%rbp
  mov    %rax,%rdi
  call   <OC_mkIsConstFuncDec@plt>
  mov    %rax,%r12
  mov    %rbp,%rdi
  call   <free@plt>
  mov    %r12,%rsi
  mov    %rbx,%rdi
  call   <UTIL_appendStr@plt>
  mov    %rax,%rbp
  mov    %r12,%rdi
  call   <free@plt>
  mov    %rbx,%rdi
  call   <free@plt>
  lea    D18(%rip),%rdi
  call   <OC_mkIsConstFuncName@plt>
  mov    %rax,%rbx
  mov    %rax,%rdi
  call   <OC_mkIsConstFuncDec@plt>
  mov    %rax,%r12
  mov    %rbx,%rdi
  call   <free@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <UTIL_appendStr@plt>
  mov    %rax,%rbx
  mov    %r12,%rdi
  call   <free@plt>
  mov    %rbp,%rdi
  call   <free@plt>
  lea    D54(%rip),%rdi
  call   <OC_mkIsConstFuncName@plt>
  mov    %rax,%rbp
  mov    %rax,%rdi
  call   <OC_mkIsConstFuncDec@plt>
  mov    %rax,%r12
  mov    %rbp,%rdi
  call   <free@plt>
  mov    %r12,%rsi
  mov    %rbx,%rdi
  call   <UTIL_appendStr@plt>
  mov    %rax,%rbp
  mov    %r12,%rdi
  call   <free@plt>
  mov    %rbx,%rdi
  call   <free@plt>
  lea    D92(%rip),%rdi
  call   <OC_mkIsConstFuncName@plt>
  mov    %rax,%rbx
  mov    %rax,%rdi
  call   <OC_mkIsConstFuncDec@plt>
  mov    %rax,%r12
  mov    %rbx,%rdi
  call   <free@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <UTIL_appendStr@plt>
  mov    %rax,%rbx
  mov    %r12,%rdi
  call   <free@plt>
  mov    %rbp,%rdi
  call   <free@plt>
  lea    D80(%rip),%rdi
  call   <OC_mkIsConstFuncName@plt>
  mov    %rax,%rbp
  mov    %rax,%rdi
  call   <OC_mkIsConstFuncDec@plt>
  mov    %rax,%r12
  mov    %rbp,%rdi
  call   <free@plt>
  mov    %r12,%rsi
  mov    %rbx,%rdi
  call   <UTIL_appendStr@plt>
  mov    %rax,%rbp
  mov    %r12,%rdi
  call   <free@plt>
  mov    %rbx,%rdi
  call   <free@plt>
  lea    D57(%rip),%rdi
  call   <OC_mkIsConstFuncName@plt>
  mov    %rax,%rbx
  mov    %rax,%rdi
  call   <OC_mkIsConstFuncDec@plt>
  mov    %rax,%r12
  mov    %rbx,%rdi
  call   <free@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <UTIL_appendStr@plt>
  mov    %rax,%rbx
  mov    %r12,%rdi
  call   <free@plt>
  mov    %rbp,%rdi
  call   <free@plt>
  lea    D43(%rip),%rdi
  call   <OC_mkIsConstFuncName@plt>
  mov    %rax,%rbp
  mov    %rax,%rdi
  call   <OC_mkIsConstFuncDec@plt>
  mov    %rax,%r12
  mov    %rbp,%rdi
  call   <free@plt>
  mov    %r12,%rsi
  mov    %rbx,%rdi
  call   <UTIL_appendStr@plt>
  mov    %rax,%rbp
  mov    %r12,%rdi
  call   <free@plt>
  mov    %rbx,%rdi
  call   <free@plt>
  lea    D85(%rip),%rdi
  call   <OC_mkIsConstFuncName@plt>
  mov    %rax,%rbx
  mov    %rax,%rdi
  call   <OC_mkIsConstFuncDec@plt>
  mov    %rax,%r12
  mov    %rbx,%rdi
  call   <free@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <UTIL_appendStr@plt>
  mov    %rax,%rbx
  mov    %r12,%rdi
  call   <free@plt>
  mov    %rbp,%rdi
  call   <free@plt>
  lea    D29(%rip),%rdi
  call   <OC_mkIsConstFuncName@plt>
  mov    %rax,%r12
  mov    %rax,%rdi
  call   <OC_mkIsConstFuncDec@plt>
  mov    %rax,%rbp
  mov    %r12,%rdi
  call   <free@plt>
  mov    %rbp,%rsi
  mov    %rbx,%rdi
  call   <UTIL_appendStr@plt>
  mov    %rax,%r12
  mov    %rbp,%rdi
  call   <free@plt>
  mov    %rbx,%rdi
  call   <free@plt>
  mov    %r12,%rax
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
```

tool_calls: name: retrieve_data
arguments: label: D55
type_infered: string
name: retrieve_data
arguments: label: D60
type_infered: string
name: retrieve_data
arguments: label: D18
type_infered: string
name: retrieve_data
arguments: label: D54
type_infered: string
name: retrieve_data
arguments: label: D92
type_infered: string
name: retrieve_data
arguments: label: D80
type_infered: string
name: retrieve_data
arguments: label: D57
type_infered: string
name: retrieve_data
arguments: label: D43
type_infered: string
name: retrieve_data
arguments: label: D85
type_infered: string
name: retrieve_data
arguments: label: D29
type_infered: string

tool: D55: genericApplyConstant

tool: D60: overloadUMinusConstant

tool: D18: overloadAbsConstant

tool: D54: overloadPlusConstant

tool: D92: overloadMinusConstant

tool: D80: overloadTimeConstant

tool: D57: overloadLTConstant

tool: D43: overloadGTConstant

tool: D85: overloadLEConstant

tool: D29: overloadGEConstant

assistant: ```c
char *OC_mkGenericConstFuncDecs(char *funcDefs) {
  char *funcName;
  char *def;
  char *text;
  funcName = OC_mkIsConstFuncName("genericApplyConstant");
  def = OC_mkIsConstFuncDec(funcName);
  free(funcName);
  text = UTIL_appendStr(funcDefs, def);
  free(def);
  free(funcDefs);
  funcDefs = text;
  funcName = OC_mkIsConstFuncName("overloadUMinusConstant");
  def = OC_mkIsConstFuncDec(funcName);
  free(funcName);
  text = UTIL_appendStr(funcDefs, def);
  free(def);
  free(funcDefs);
  funcDefs = text;
  funcName = OC_mkIsConstFuncName("overloadAbsConstant");
  def = OC_mkIsConstFuncDec(funcName);
  free(funcName);
  text = UTIL_appendStr(funcDefs, def);
  free(def);
  free(funcDefs);
  funcDefs = text;
  funcName = OC_mkIsConstFuncName("overloadPlusConstant");
  def = OC_mkIsConstFuncDec(funcName);
  free(funcName);
  text = UTIL_appendStr(funcDefs, def);
  free(def);
  free(funcDefs);
  funcDefs = text;
  funcName = OC_mkIsConstFuncName("overloadMinusConstant");
  def = OC_mkIsConstFuncDec(funcName);
  free(funcName);
  text = UTIL_appendStr(funcDefs, def);
  free(def);
  free(funcDefs);
  funcDefs = text;
  funcName = OC_mkIsConstFuncName("overloadTimeConstant");
  def = OC_mkIsConstFuncDec(funcName);
  free(funcName);
  text = UTIL_appendStr(funcDefs, def);
  free(def);
  free(funcDefs);
  funcDefs = text;
  funcName = OC_mkIsConstFuncName("overloadLTConstant");
  def = OC_mkIsConstFuncDec(funcName);
  free(funcName);
  text = UTIL_appendStr(funcDefs, def);
  free(def);
  free(funcDefs);
  funcDefs = text;
  funcName = OC_mkIsConstFuncName("overloadGTConstant");
  def = OC_mkIsConstFuncDec(funcName);
  free(funcName);
  text = UTIL_appendStr(funcDefs, def);
  free(def);
  free(funcDefs);
  funcDefs = text;
  funcName = OC_mkIsConstFuncName("overloadLEConstant");
  def = OC_mkIsConstFuncDec(funcName);
  free(funcName);
  text = UTIL_appendStr(funcDefs, def);
  free(def);
  free(funcDefs);
  funcDefs = text;
  funcName = OC_mkIsConstFuncName("overloadGEConstant");
  def = OC_mkIsConstFuncDec(funcName);
  free(funcName);
  text = UTIL_appendStr(funcDefs, def);
  free(def);
  free(funcDefs);
  funcDefs = text;
  return funcDefs;
}
```