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

```asm
<init_mem_writer>:
  endbr64
  push   %r12
  xor    %eax,%eax
  lea    D83(%rip),%r12
  push   %rbp
  lea    D19(%rip),%rbp
  sub    $0x8,%rsp
  call   <monitor_clear@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <monitor_write@plt>
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <monitor_write@plt>
  lea    D21(%rip),%rdi
  xor    %eax,%eax
  call   <monitor_write@plt>
  mov    $0xf,%edx
  mov    $0x4,%esi
  xor    %eax,%eax
  lea    D8(%rip),%rdi
  call   <monitor_write_color@plt>
  lea    D110(%rip),%rdi
  xor    %eax,%eax
  call   <monitor_write@plt>
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <monitor_write@plt>
  lea    D74(%rip),%rdi
  xor    %eax,%eax
  call   <monitor_write@plt>
  lea    D18(%rip),%rdi
  xor    %eax,%eax
  call   <monitor_write@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <monitor_write@plt>
  lea    D64(%rip),%rdi
  xor    %eax,%eax
  call   <monitor_write@plt>
  xor    %eax,%eax
  call   <init_descriptor_tables@plt>
  lea    D59(%rip),%rdi
  xor    %eax,%eax
  call   <monitor_write@plt>
  xor    %eax,%eax
  call   <initialise_paging@plt>
  lea    D14(%rip),%rdi
  xor    %eax,%eax
  call   <monitor_write@plt>
  sti
  xor    %eax,%eax
  call   <init_keyboard@plt>
  lea    D100(%rip),%rdi
  xor    %eax,%eax
  call   <monitor_write@plt>
  xor    %eax,%eax
  call   <init_console@plt>
  lea    D37(%rip),%rdi
  xor    %eax,%eax
  call   <monitor_write@plt>
  add    $0x8,%rsp
  xor    %eax,%eax
  pop    %rbp
  pop    %r12
  jmp    1100 <init_pci@plt>
```

tool_calls: name: read_data
arguments: data_tag: D83
datatype: string
name: read_data
arguments: data_tag: D19
datatype: string
name: read_data
arguments: data_tag: D21
datatype: string
name: read_data
arguments: data_tag: D8
datatype: string
name: read_data
arguments: data_tag: D110
datatype: string
name: read_data
arguments: data_tag: D74
datatype: string
name: read_data
arguments: data_tag: D18
datatype: string
name: read_data
arguments: data_tag: D64
datatype: string
name: read_data
arguments: data_tag: D59
datatype: string
name: read_data
arguments: data_tag: D14
datatype: string
name: read_data
arguments: data_tag: D100
datatype: string
name: read_data
arguments: data_tag: D37
datatype: string

tool: D83: #                                         #


tool: D19: ###########################################


tool: D21: #       

tool: D8:    Cold-Boot Kernel CBK    

tool: D110:        #


tool: D74: # Version 0.1b                         ll #


tool: D18: # 2016                              CASED #


tool: D64: 
- initialize descriptor_tables


tool: D59: - initialize paging and setup pagetable (takes a second)


tool: D14: - initialize keyboard


tool: D100: - initialize console


tool: D37: - initialize pci


assistant: ```c
void init_mem_writer() {
  monitor_clear();
  monitor_write("###########################################\n");
  monitor_write("#                                         #\n");
  monitor_write("#       ");
  monitor_write_color("   Cold-Boot Kernel CBK    ", 4, 15);
  monitor_write("       #\n");
  monitor_write("#                                         #\n");
  monitor_write("# Version 0.1b                         ll #\n");
  monitor_write("# 2016                              CASED #\n");
  monitor_write("###########################################\n");
  monitor_write("\n- initialize descriptor_tables\n");
  init_descriptor_tables();
  monitor_write("- initialize paging and setup pagetable (takes a second)\n");
  initialise_paging();
  monitor_write("- initialize keyboard\n");
  asm volatile("sti");
  init_keyboard();
  monitor_write("- initialize console\n");
  init_console();
  monitor_write("- initialize pci\n");
  init_pci();
}
```