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

```asm
<test_from_str>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    $0x0,%edi
  call   <ol_color_from_string@plt>
  mov    %eax,%edi
  call   <print_color@plt>
  lea    D71(%rip),%rax
  mov    %rax,%rdi
  call   <ol_color_from_string@plt>
  mov    %eax,%edi
  call   <print_color@plt>
  lea    D50(%rip),%rax
  mov    %rax,%rdi
  call   <ol_color_from_string@plt>
  mov    %eax,%edi
  call   <print_color@plt>
  lea    D60(%rip),%rax
  mov    %rax,%rdi
  call   <ol_color_from_string@plt>
  mov    %eax,%edi
  call   <print_color@plt>
  lea    D117(%rip),%rax
  mov    %rax,%rdi
  call   <ol_color_from_string@plt>
  mov    %eax,%edi
  call   <print_color@plt>
  lea    D51(%rip),%rax
  mov    %rax,%rdi
  call   <ol_color_from_string@plt>
  mov    %eax,%edi
  call   <print_color@plt>
  lea    D27(%rip),%rax
  mov    %rax,%rdi
  call   <ol_color_from_string@plt>
  mov    %eax,%edi
  call   <print_color@plt>
  lea    D53(%rip),%rax
  mov    %rax,%rdi
  call   <ol_color_from_string@plt>
  mov    %eax,%edi
  call   <print_color@plt>
  lea    D13(%rip),%rax
  mov    %rax,%rdi
  call   <ol_color_from_string@plt>
  mov    %eax,%edi
  call   <print_color@plt>
  lea    D82(%rip),%rax
  mov    %rax,%rdi
  call   <ol_color_from_string@plt>
  mov    %eax,%edi
  call   <print_color@plt>
  lea    D79(%rip),%rax
  mov    %rax,%rdi
  call   <ol_color_from_string@plt>
  mov    %eax,%edi
  call   <print_color@plt>
  lea    D25(%rip),%rax
  mov    %rax,%rdi
  call   <ol_color_from_string@plt>
  mov    %eax,%edi
  call   <print_color@plt>
  lea    D62(%rip),%rax
  mov    %rax,%rdi
  call   <ol_color_from_string@plt>
  mov    %eax,%edi
  call   <print_color@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D71
type_infered: string
name: disassemble_data
arguments: data_tag: D50
type_infered: string
name: disassemble_data
arguments: data_tag: D60
type_infered: string
name: disassemble_data
arguments: data_tag: D117
type_infered: string
name: disassemble_data
arguments: data_tag: D51
type_infered: string
name: disassemble_data
arguments: data_tag: D27
type_infered: string
name: disassemble_data
arguments: data_tag: D53
type_infered: string
name: disassemble_data
arguments: data_tag: D13
type_infered: string
name: disassemble_data
arguments: data_tag: D82
type_infered: string
name: disassemble_data
arguments: data_tag: D79
type_infered: string
name: disassemble_data
arguments: data_tag: D25
type_infered: string
name: disassemble_data
arguments: data_tag: D62
type_infered: string

tool: 

tool: D50: AABBCC

tool: D60: #AAEEGG

tool: D117: #000000

tool: D51: #FFFFFF

tool: D27: #ffffff

tool: D53: #3377aA

tool: D13: #abcdef

tool: D82: #ABCDEF

tool: D79: #123456

tool: D25: #789aBc

tool: D62: #0a0B0c

assistant: ```c
void test_from_str() {
  print_color(ol_color_from_string(NULL));
  print_color(ol_color_from_string(""));
  print_color(ol_color_from_string("AABBCC"));
  print_color(ol_color_from_string("#AAEEGG"));
  print_color(ol_color_from_string("#000000"));
  print_color(ol_color_from_string("#FFFFFF"));
  print_color(ol_color_from_string("#ffffff"));
  print_color(ol_color_from_string("#3377aA"));
  print_color(ol_color_from_string("#abcdef"));
  print_color(ol_color_from_string("#ABCDEF"));
  print_color(ol_color_from_string("#123456"));
  print_color(ol_color_from_string("#789aBc"));
  print_color(ol_color_from_string("#0a0B0c"));
}
```