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

```asm
<getSettingFromGConfInto>:
  endbr64
  push   %r14
  xor    %eax,%eax
  mov    %edx,%r14d
  push   %r13
  mov    %rsi,%r13
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  push   %rbx
  call   <get_client@plt>
  xor    %edx,%edx
  lea    D123(%rip),%rsi
  mov    %rax,%rdi
  mov    %rax,%rbp
  call   <get_bool@plt>
  test   %rax,%rax
  jne    L24
  xor    %edx,%edx
  lea    D141(%rip),%rsi
  mov    %rbp,%rdi
  call   <get_string@plt>
  lea    D201(%rip),%rdi
  mov    %eax,%esi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L13
L24:
  xor    %edx,%edx
  lea    D134(%rip),%rsi
  mov    %rbp,%rdi
  call   <get_bool@plt>
  test   %rax,%rax
  jne    L9
  sub    $0x8,%rsp
  mov    %r14d,%ecx
  mov    %r13,%rdx
  mov    %r12,%rsi
  lea    D226(%rip),%rax
  lea    D161(%rip),%r9
  mov    %rbp,%rdi
  push   %rax
  lea    D45(%rip),%r8
  call   <checkGConfAndFill@plt>
  mov    %r14d,%ecx
  mov    %r13,%rdx
  mov    %r12,%rsi
  lea    D46(%rip),%rax
  lea    D21(%rip),%r9
  mov    %rbp,%rdi
  lea    D222(%rip),%r8
  mov    %rax,(%rsp)
  call   <checkGConfAndFill@plt>
  mov    %r14d,%ecx
  mov    %r13,%rdx
  mov    %r12,%rsi
  lea    D55(%rip),%rax
  lea    D117(%rip),%r9
  mov    %rbp,%rdi
  lea    D0(%rip),%r8
  mov    %rax,(%rsp)
  call   <checkGConfAndFill@plt>
  lea    D225(%rip),%rax
  lea    D139(%rip),%r9
  mov    %rax,(%rsp)
L32:
  mov    %r13,%rdx
  lea    D74(%rip),%r8
  mov    %r14d,%ecx
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <checkGConfAndFill@plt>
  pop    %rax
  pop    %rdx
L13:
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
  nopw   0x0(%rax,%rax,1)
L9:
  sub    $0x8,%rsp
  mov    %r14d,%ecx
  mov    %r13,%rdx
  mov    %r12,%rsi
  lea    D226(%rip),%rbx
  lea    D161(%rip),%r9
  mov    %rbp,%rdi
  push   %rbx
  lea    D45(%rip),%r8
  call   <checkGConfAndFill@plt>
  mov    %r14d,%ecx
  mov    %r13,%rdx
  mov    %r12,%rsi
  lea    D161(%rip),%r9
  lea    D222(%rip),%r8
  mov    %rbp,%rdi
  mov    %rbx,(%rsp)
  call   <checkGConfAndFill@plt>
  mov    %r14d,%ecx
  mov    %r13,%rdx
  mov    %r12,%rsi
  lea    D161(%rip),%r9
  lea    D0(%rip),%r8
  mov    %rbp,%rdi
  mov    %rbx,(%rsp)
  call   <checkGConfAndFill@plt>
  mov    %rbx,(%rsp)
  lea    D161(%rip),%r9
  jmp    L32
```

tool_calls: name: read_data
arguments: data_label: D123
datatype: string
name: read_data
arguments: data_label: D141
datatype: string
name: read_data
arguments: data_label: D201
datatype: string
name: read_data
arguments: data_label: D134
datatype: string
name: read_data
arguments: data_label: D226
datatype: string
name: read_data
arguments: data_label: D161
datatype: string
name: read_data
arguments: data_label: D45
datatype: string
name: read_data
arguments: data_label: D46
datatype: string
name: read_data
arguments: data_label: D21
datatype: string
name: read_data
arguments: data_label: D222
datatype: string
name: read_data
arguments: data_label: D55
datatype: string
name: read_data
arguments: data_label: D117
datatype: string
name: read_data
arguments: data_label: D0
datatype: string
name: read_data
arguments: data_label: D225
datatype: string
name: read_data
arguments: data_label: D139
datatype: string
name: read_data
arguments: data_label: D74
datatype: string

tool: D123: /system/http_proxy/use_http_proxy

tool: D141: /system/proxy/mode

tool: D201: manual

tool: D134: /system/http_proxy/use_same_proxy

tool: D226: /system/http_proxy/port

tool: D161: /system/http_proxy/host

tool: D45: HTTP

tool: D46: /system/proxy/secure_port

tool: D21: /system/proxy/secure_host

tool: D222: HTTPS

tool: D55: /system/proxy/ftp_port

tool: D117: /system/proxy/ftp_host

tool: D0: FTP

tool: D225: /system/proxy/socks_port

tool: D139: /system/proxy/socks_host

tool: D74: SOCKS

assistant: ```c
void getSettingFromGConfInto(char *string_to_fill, char *key, int key_length) {
  void *client = get_client();
  if (!get_bool(client, "/system/http_proxy/use_http_proxy", NULL) && !!strcmp("manual", get_string(client, "/system/proxy/mode", NULL))) {
    return;
  }
  if (get_bool(client, "/system/http_proxy/use_same_proxy", NULL)) {
    checkGConfAndFill(client, string_to_fill, key, key_length, "HTTP", "/system/http_proxy/host", "/system/http_proxy/port");
    checkGConfAndFill(client, string_to_fill, key, key_length, "HTTPS", "/system/http_proxy/host", "/system/http_proxy/port");
    checkGConfAndFill(client, string_to_fill, key, key_length, "FTP", "/system/http_proxy/host", "/system/http_proxy/port");
    checkGConfAndFill(client, string_to_fill, key, key_length, "SOCKS", "/system/http_proxy/host", "/system/http_proxy/port");
  } else {
    checkGConfAndFill(client, string_to_fill, key, key_length, "HTTP", "/system/http_proxy/host", "/system/http_proxy/port");
    checkGConfAndFill(client, string_to_fill, key, key_length, "HTTPS", "/system/proxy/secure_host", "/system/proxy/secure_port");
    checkGConfAndFill(client, string_to_fill, key, key_length, "FTP", "/system/proxy/ftp_host", "/system/proxy/ftp_port");
    checkGConfAndFill(client, string_to_fill, key, key_length, "SOCKS", "/system/proxy/socks_host", "/system/proxy/socks_port");
  }
}
```