user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<send_oscam_config>:
  endbr64
  push   %r13
  mov    %rsi,%r13
  mov    $0x2,%esi
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  call   <setActiveMenu@plt>
  lea    D146(%rip),%rsi
  mov    %r13,%rdi
  call   <getParam@plt>
  lea    D71(%rip),%rsi
  mov    %rax,%rdi
  mov    %rax,%rbp
  call   <strcmp@plt>
  test   %eax,%eax
  je     L23
  lea    D44(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L70
  lea    D39(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L29
  lea    D98(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L134
  lea    D6(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L37
  lea    D117(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L49
  lea    D60(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L72
  lea    D34(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L43
  lea    D43(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L89
  lea    D116(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L85
  lea    D102(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L135
  lea    D66(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L56
  lea    D2(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L78
  lea    D65(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %r13,%rsi
  mov    %r12,%rdi
  test   %eax,%eax
  jne    L81
  pop    %rbp
  pop    %r12
  pop    %r13
  jmp    1190 <send_oscam_config_loadbalancer@plt>
  nopl   (%rax)
L23:
  pop    %rbp
  mov    %r13,%rsi
  mov    %r12,%rdi
  pop    %r12
  pop    %r13
  jmp    1170 <send_oscam_config_webif@plt>
L134:
  pop    %rbp
  mov    %r13,%rsi
  mov    %r12,%rdi
  pop    %r12
  pop    %r13
  jmp    11a0 <send_oscam_config_camd35tcp@plt>
L70:
  pop    %rbp
  mov    %r13,%rsi
  mov    %r12,%rdi
  pop    %r12
  pop    %r13
  jmp    1160 <send_oscam_config_monitor@plt>
L29:
  pop    %rbp
  mov    %r13,%rsi
  mov    %r12,%rdi
  pop    %r12
  pop    %r13
  jmp    1240 <send_oscam_config_camd35@plt>
L37:
  pop    %rbp
  mov    %r13,%rsi
  mov    %r12,%rdi
  pop    %r12
  pop    %r13
  jmp    11b0 <send_oscam_config_cache@plt>
L49:
  pop    %rbp
  mov    %r13,%rsi
  mov    %r12,%rdi
  pop    %r12
  pop    %r13
  jmp    1250 <send_oscam_config_newcamd@plt>
L72:
  pop    %rbp
  mov    %r13,%rsi
  mov    %r12,%rdi
  pop    %r12
  pop    %r13
  jmp    11d0 <send_oscam_config_radegast@plt>
L43:
  pop    %rbp
  mov    %r13,%rsi
  mov    %r12,%rdi
  pop    %r12
  pop    %r13
  jmp    1200 <send_oscam_config_scam@plt>
L81:
  pop    %rbp
  pop    %r12
  pop    %r13
  jmp    1220 <send_oscam_config_global@plt>
  nopw   0x0(%rax,%rax,1)
L89:
  pop    %rbp
  mov    %r13,%rsi
  mov    %r12,%rdi
  pop    %r12
  pop    %r13
  jmp    11c0 <send_oscam_config_cccam@plt>
L85:
  pop    %rbp
  mov    %r13,%rsi
  mov    %r12,%rdi
  pop    %r12
  pop    %r13
  jmp    1180 <send_oscam_config_gbox@plt>
L135:
  pop    %rbp
  mov    %r13,%rsi
  mov    %r12,%rdi
  pop    %r12
  pop    %r13
  jmp    1270 <send_oscam_config_dvbapi@plt>
L56:
  pop    %rbp
  mov    %r13,%rsi
  mov    %r12,%rdi
  pop    %r12
  pop    %r13
  jmp    1230 <send_oscam_config_anticasc@plt>
L78:
  pop    %rbp
  mov    %r13,%rsi
  mov    %r12,%rdi
  pop    %r12
  pop    %r13
  jmp    11f0 <send_oscam_config_serial@plt>
```

tool_calls: name: read_data
arguments: label: D146
datatype: string
name: read_data
arguments: label: D71
datatype: string
name: read_data
arguments: label: D44
datatype: string
name: read_data
arguments: label: D39
datatype: string
name: read_data
arguments: label: D98
datatype: string
name: read_data
arguments: label: D6
datatype: string
name: read_data
arguments: label: D117
datatype: string
name: read_data
arguments: label: D60
datatype: string
name: read_data
arguments: label: D34
datatype: string
name: read_data
arguments: label: D43
datatype: string
name: read_data
arguments: label: D116
datatype: string
name: read_data
arguments: label: D102
datatype: string
name: read_data
arguments: label: D66
datatype: string
name: read_data
arguments: label: D2
datatype: string
name: read_data
arguments: label: D65
datatype: string

tool: D146: part

tool: D71: webif

tool: D44: monitor

tool: D39: camd35

tool: D98: camd35tcp

tool: D6: cache

tool: D117: newcamd

tool: D60: radegast

tool: D34: scam

tool: D43: cccam

tool: D116: gbox

tool: D102: dvbapi

tool: D66: anticasc

tool: D2: serial

tool: D65: loadbalancer

assistant: ```c
char *send_oscam_config(struct templatevars *vars, struct uriparams *params) {
  setActiveMenu(vars, 2);
  char *part = getParam(params, "part");
  if (!strcmp(part, "webif")) {
    return send_oscam_config_webif(vars, params);
  } else if (!strcmp(part, "monitor")) {
    return send_oscam_config_monitor(vars, params);
  } else if (!strcmp(part, "camd35")) {
    return send_oscam_config_camd35(vars, params);
  } else if (!strcmp(part, "camd35tcp")) {
    return send_oscam_config_camd35tcp(vars, params);
  } else if (!strcmp(part, "cache")) {
    return send_oscam_config_cache(vars, params);
  } else if (!strcmp(part, "newcamd")) {
    return send_oscam_config_newcamd(vars, params);
  } else if (!strcmp(part, "radegast")) {
    return send_oscam_config_radegast(vars, params);
  } else if (!strcmp(part, "scam")) {
    return send_oscam_config_scam(vars, params);
  } else if (!strcmp(part, "cccam")) {
    return send_oscam_config_cccam(vars, params);
  } else if (!strcmp(part, "gbox")) {
    return send_oscam_config_gbox(vars, params);
  } else if (!strcmp(part, "dvbapi")) {
    return send_oscam_config_dvbapi(vars, params);
  } else if (!strcmp(part, "anticasc")) {
    return send_oscam_config_anticasc(vars, params);
  } else if (!strcmp(part, "serial")) {
    return send_oscam_config_serial(vars, params);
  } else if (!strcmp(part, "loadbalancer")) {
    return send_oscam_config_loadbalancer(vars, params);
  } else {
    return send_oscam_config_global(vars, params);
  }
}
```