user: 请从给定的汇编指令推导出C源代码:

```asm
<ckb_info>:
  endbr64
  push   %r12
  push   %rbp
  push   %rbx
  lea    D29(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D23(%rip),%rdi
  call   <printurl@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D4(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D244(%rip),%rdi
  call   <printurl@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D96(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D201(%rip),%rdi
  call   <printurl@plt>
  lea    D126(%rip),%rsi
  lea    D162(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D90(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D94(%rip),%rdi
  call   <printurl@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D318(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D130(%rip),%rdi
  call   <printurl@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D291(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D208(%rip),%rdi
  call   <printurl@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D290(%rip),%rdx
  lea    D180(%rip),%r12
  mov    %r12,%rsi
  lea    D68(%rip),%rbp
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D251(%rip),%rdi
  call   <printurl@plt>
  mov    $0x20,%edi
  call   <putchar@plt>
  lea    D216(%rip),%rbx
  mov    %rbx,%rdi
  call   <printurl@plt>
  mov    $0x20,%edi
  call   <putchar@plt>
  mov    $0x30,%edi
  call   <putchar@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D119(%rip),%rdx
  mov    %r12,%rsi
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D269(%rip),%rdi
  call   <printurl@plt>
  mov    $0x20,%edi
  call   <putchar@plt>
  mov    %rbx,%rdi
  call   <printurl@plt>
  mov    $0x20,%edi
  call   <putchar@plt>
  mov    $0x30,%edi
  call   <putchar@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D143(%rip),%rsi
  lea    D327(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D206(%rip),%rbx
  mov    %rbx,%rsi
  lea    D89(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D205(%rip),%rsi
  lea    D181(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D184(%rip),%rsi
  lea    D19(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D45(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D107(%rip),%rdi
  call   <printurl@plt>
  mov    %rbx,%rsi
  lea    D86(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D280(%rip),%rdi
  call   <printurl@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D29
data_type: string
name: extract_symbolic_data
arguments: label: D23
data_type: string
name: extract_symbolic_data
arguments: label: D4
data_type: string
name: extract_symbolic_data
arguments: label: D244
data_type: string
name: extract_symbolic_data
arguments: label: D96
data_type: string
name: extract_symbolic_data
arguments: label: D201
data_type: string
name: extract_symbolic_data
arguments: label: D126
data_type: string
name: extract_symbolic_data
arguments: label: D162
data_type: string
name: extract_symbolic_data
arguments: label: D90
data_type: string
name: extract_symbolic_data
arguments: label: D94
data_type: string
name: extract_symbolic_data
arguments: label: D318
data_type: string
name: extract_symbolic_data
arguments: label: D130
data_type: string
name: extract_symbolic_data
arguments: label: D291
data_type: string
name: extract_symbolic_data
arguments: label: D208
data_type: string
name: extract_symbolic_data
arguments: label: D290
data_type: string
name: extract_symbolic_data
arguments: label: D180
data_type: string
name: extract_symbolic_data
arguments: label: D68
data_type: string
name: extract_symbolic_data
arguments: label: D251
data_type: string
name: extract_symbolic_data
arguments: label: D216
data_type: string
name: extract_symbolic_data
arguments: label: D119
data_type: string
name: extract_symbolic_data
arguments: label: D269
data_type: string
name: extract_symbolic_data
arguments: label: D143
data_type: string
name: extract_symbolic_data
arguments: label: D327
data_type: string
name: extract_symbolic_data
arguments: label: D206
data_type: string
name: extract_symbolic_data
arguments: label: D89
data_type: string
name: extract_symbolic_data
arguments: label: D205
data_type: string
name: extract_symbolic_data
arguments: label: D181
data_type: string
name: extract_symbolic_data
arguments: label: D184
data_type: string
name: extract_symbolic_data
arguments: label: D19
data_type: string
name: extract_symbolic_data
arguments: label: D45
data_type: string
name: extract_symbolic_data
arguments: label: D107
data_type: string
name: extract_symbolic_data
arguments: label: D86
data_type: string
name: extract_symbolic_data
arguments: label: D280
data_type: string

tool: D29: name 

tool: D23: Random

tool: D4: version 

tool: D244: 0.9

tool: D96: author 

tool: D201: MSC

tool: D126: 2014-2015

tool: D162: 
year %s


tool: D90: license 

tool: D94: GPLv2

tool: D318: guid 

tool: D130: {22418DA4-A181-4B93-A4D3-03682BA283D2}

tool: D291: description 

tool: D208: An effect that changes key colors randomly.

tool: D290: fade

tool: D180: bool

tool: D68: param %s %s 

tool: D251: Fade in

tool: 

tool: D119: useopacity

tool: D269: Randomize opacity

tool: D143: none

tool: D327: kpmode %s


tool: D206: duration

tool: D89: time %s


tool: D205: live

tool: D181: parammode %s


tool: D184: off

tool: D19: repeat %s


tool: D45: preset 

tool: D107: Default

tool: D86:  %s=

tool: D280: 1.

assistant: ```c
void ckb_info() {
  do {
    printf("name ");
    printurl("Random");
    printf("\n");
  } while (0);
  do {
    printf("version ");
    printurl("0.9");
    printf("\n");
  } while (0);
  do {
    printf("author ");
    printurl("MSC");
    printf("\nyear %s\n", "2014-2015");
  } while (0);
  do {
    printf("license ");
    printurl("GPLv2");
    printf("\n");
  } while (0);
  do {
    printf("guid ");
    printurl("{22418DA4-A181-4B93-A4D3-03682BA283D2}");
    printf("\n");
  } while (0);
  do {
    printf("description ");
    printurl("An effect that changes key colors randomly.");
    printf("\n");
  } while (0);
  do {
    printf("param %s %s ", "bool", "fade");
    printurl("Fade in");
    printf(" ");
    printurl("");
    printf(" ");
    printf((0) ? "1" : "0");
    printf("\n");
  } while (0);
  do {
    printf("param %s %s ", "bool", "useopacity");
    printurl("Randomize opacity");
    printf(" ");
    printurl("");
    printf(" ");
    printf((0) ? "1" : "0");
    printf("\n");
  } while (0);
  do {
    printf("kpmode %s\n", "none");
  } while (0);
  do {
    printf("time %s\n", "duration");
  } while (0);
  do {
    printf("parammode %s\n", (1) ? "live" : "static");
  } while (0);
  do {
    printf("repeat %s\n", (0) ? "on" : "off");
  } while (0);
  do {
    printf("preset ");
    printurl("Default");
  } while (0);
  do {
    printf(" %s=", "duration");
    printurl("1.");
  } while (0);
  do {
    printf("\n");
  } while (0);
}
```