user: 下面的汇编指令对应的C源代码是什么:

```asm
<ad_update_variable>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    %rdi,%rbp
  mov    %rsi,%rbx
  mov    %rsi,%r9
  mov    %rdi,%r8
  lea    D3(%rip),%rcx
  mov    $0x270,%edx
  lea    D26(%rip),%rsi
  lea    D52(%rip),%rdi
  mov    $0x0,%eax
  call   <_make_log@plt>
  test   %rbx,%rbx
  je     L56
  testb  $0xdf,(%rbx)
  jne    L58
L56:
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L58:
  mov    %rbp,%rdi
  call   <strlen@plt>
  mov    %rax,%r13
  lea    0x4(%rax),%rdi
  call   <gmk_alloc@plt>
  mov    %rax,%r12
  test   %rax,%rax
  je     L56
  movb   $0x24,(%rax)
  movb   $0x28,0x1(%rax)
  lea    0x2(%rax),%rdi
  mov    %r13,%rdx
  mov    %rbp,%rsi
  call   <memcpy@plt>
  movb   $0x29,0x2(%r12,%r13,1)
  lea    0x3(%r13),%r15
  movb   $0x0,0x3(%r12,%r13,1)
  mov    %r12,%rdi
  call   <gmk_expand@plt>
  mov    %rax,%r14
  mov    %r12,%rdi
  call   <gmk_free@plt>
  test   %r14,%r14
  je     L56
  mov    %rbx,%rdi
  call   <strlen@plt>
  mov    %rax,%r12
  mov    %rbx,%rsi
  mov    %r14,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L36
  movzbl (%rax,%r12,1),%edi
  test   %dil,%dil
  je     L68
  movsbl %dil,%edi
  call   <isspace@plt>
  test   %rax,%rax
  je     L63
L68:
  mov    %r14,%rdi
  call   <gmk_free@plt>
  jmp    L56
L63:
  mov    %r14,%rdi
  call   <gmk_free@plt>
L36:
  lea    0x1(%r12,%r15,2),%rdi
  call   <gmk_alloc@plt>
  mov    %rax,%r12
  test   %rax,%rax
  je     L56
  mov    %r13,%rdx
  mov    %rbp,%rsi
  mov    %rax,%rdi
  call   <memcpy@plt>
  lea    (%r12,%r13,1),%rax
  movb   $0x3a,(%rax)
  movb   $0x3d,0x1(%rax)
  movb   $0x24,0x2(%rax)
  lea    0x4(%rax),%r14
  movb   $0x28,0x3(%rax)
  mov    %r13,%rdx
  mov    %rbp,%rsi
  mov    %r14,%rdi
  call   <memcpy@plt>
  lea    (%r14,%r13,1),%rdi
  movb   $0x29,(%rdi)
  movb   $0x20,0x1(%rdi)
  add    $0x2,%rdi
  mov    %rbx,%rsi
  call   <strcpy@plt>
  mov    %r12,%r8
  lea    D51(%rip),%rcx
  mov    $0x2ac,%edx
  lea    D26(%rip),%rsi
  lea    D52(%rip),%rdi
  mov    $0x0,%eax
  call   <_make_log@plt>
  mov    $0x0,%esi
  mov    %r12,%rdi
  call   <gmk_eval@plt>
  mov    %r12,%rdi
  call   <gmk_free@plt>
  jmp    L56
```

tool_calls: name: read_data
arguments: label: D3
type_infered: string
name: read_data
arguments: label: D26
type_infered: string
name: read_data
arguments: label: D52
type_infered: string
name: read_data
arguments: label: D51
type_infered: string

tool: D3: Update %s with %s


tool: D26: /scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/alandekok/freeradius-server/refs/heads/master/scripts/build/dlopen.c

tool: D52: info

tool: D51: RESULT ASKED TO EVAL - %s


assistant: ```c
void ad_update_variable(char const *name, char *value) {
  size_t name_len, value_len;
  char *old, *p, *expand;
  _make_log("info", "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/alandekok/freeradius-server/refs/heads/master/scripts/build/dlopen.c", 624,
            "Update %s with %s"
            "\n",
            name, value);
  if (!value || !*value || (*value == ' '))
    return;
  name_len = strlen(name);
  expand = gmk_alloc(name_len + 4);
  if (!expand)
    return;
  expand[0] = '$';
  expand[1] = '(';
  memcpy(expand + 2, name, name_len);
  expand[2 + name_len] = ')';
  expand[2 + name_len + 1] = '\0';
  old = gmk_expand(expand);
  gmk_free(expand);
  if (!old)
    return;
  value_len = strlen(value);
  p = strstr(old, value);
  if (p) {
    if (!p[value_len] || isspace((int)p[value_len])) {
      gmk_free(old);
      return;
    }
    gmk_free(old);
  }
  expand = gmk_alloc(name_len + 4 + name_len + 2 + value_len + 1);
  if (!expand)
    return;
  p = expand;
  memcpy(p, name, name_len);
  p += name_len;
  *p++ = ':';
  *p++ = '=';
  *p++ = '$';
  *p++ = '(';
  memcpy(p, name, name_len);
  p += name_len;
  *p++ = ')';
  *p++ = ' ';
  strcpy(p, value);
  _make_log("info", "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/alandekok/freeradius-server/refs/heads/master/scripts/build/dlopen.c", 684,
            "RESULT ASKED TO EVAL - %s"
            "\n",
            expand);
  gmk_eval(expand, NULL);
  gmk_free(expand);
}
```