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

```asm
<main>:
  endbr64
  push   %r14
  push   %r13
  lea    D100(%rip),%r13
  push   %r12
  lea    D3(%rip),%r12
  push   %rbp
  lea    D79(%rip),%rbp
  push   %rbx
  lea    D146(%rip),%rbx
  sub    $0x60,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x58(%rsp)
  xor    %eax,%eax
  call   <CDO_cria@plt>
  lea    D237(%rip),%rax
  push   %r13
  mov    $0x6a11e3d,%r9d
  push   $0x29a
  lea    D121(%rip),%r8
  mov    $0x10f89f,%ecx
  lea    D241(%rip),%rdx
  push   %r12
  mov    $0x6a11e3d,%esi
  lea    D164(%rip),%rdi
  push   %rbp
  push   %rbx
  push   %rax
  lea    D73(%rip),%rax
  push   %rax
  push   $0x894
  push   $0xc
  push   $0xb
  call   <CDO_cadastra@plt>
  add    $0x50,%rsp
  xor    %eax,%eax
  call   <CDO_mostraAtual@plt>
  lea    D44(%rip),%rdi
  mov    %rsp,%r14
  call   <puts@plt>
  lea    D202(%rip),%rdi
  call   <CDO_alteraNome@plt>
  lea    D342(%rip),%rdi
  mov    %eax,%esi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  call   <CDO_mostraAtual@plt>
  lea    D158(%rip),%rdi
  call   <puts@plt>
  mov    %r14,%rdi
  call   <CDO_consultaNome@plt>
  mov    %r14,%rdi
  call   <puts@plt>
  lea    D354(%rip),%rax
  push   %r13
  mov    $0xc96ff3d,%r9d
  push   $0x29a
  lea    D125(%rip),%r8
  mov    $0x203adf,%ecx
  lea    D113(%rip),%rdx
  push   %r12
  mov    $0x739b4bd,%esi
  lea    D210(%rip),%rdi
  push   %rbp
  push   %rbx
  push   %rax
  lea    D253(%rip),%rax
  push   %rax
  push   $0x894
  push   $0xc
  push   $0xc
  call   <CDO_cadastra@plt>
  mov    %r14,%rsp
  lea    D86(%rip),%rax
  lea    D207(%rip),%r14
  push   %r13
  mov    $0x128ce03d,%r9d
  mov    $0x2f7d1f,%ecx
  mov    %r14,%rdi
  push   $0x29a
  lea    D27(%rip),%r8
  mov    $0x7d24b3d,%esi
  lea    D296(%rip),%rdx
  push   %r12
  push   %rbp
  push   %rbx
  push   %rax
  lea    D180(%rip),%rax
  push   %rax
  push   $0x894
  push   $0xc
  push   $0xd
  call   <CDO_cadastra@plt>
  add    $0x50,%rsp
  lea    D293(%rip),%rax
  mov    $0x1882c13d,%r9d
  push   %r13
  lea    D75(%rip),%r8
  mov    $0x3ebf5f,%ecx
  lea    D270(%rip),%rdx
  push   $0x29a
  mov    $0x86ae1bd,%esi
  lea    D14(%rip),%rdi
  push   %r12
  push   %rbp
  push   %rbx
  push   %rax
  lea    D233(%rip),%rax
  push   %rax
  push   $0x894
  push   $0xc
  push   $0xe
  call   <CDO_cadastra@plt>
  add    $0x50,%rsp
  lea    D77(%rip),%rax
  mov    $0x1e78a23d,%r9d
  push   %r13
  lea    D58(%rip),%r8
  mov    $0x4e019f,%ecx
  lea    D341(%rip),%rdx
  push   $0x29a
  mov    $0x903783d,%esi
  lea    D204(%rip),%rdi
  push   %r12
  push   %rbp
  push   %rbx
  push   %rax
  lea    D41(%rip),%rax
  push   %rax
  push   $0x894
  push   $0xc
  push   $0xf
  call   <CDO_cadastra@plt>
  add    $0x50,%rsp
  lea    D280(%rip),%rdi
  call   <puts@plt>
  mov    %r14,%rdi
  call   <CDO_buscaPorNome@plt>
  xor    %eax,%eax
  call   <CDO_mostraAtual@plt>
  lea    D138(%rip),%rdi
  call   <puts@plt>
  xor    %eax,%eax
  call   <CDO_retira@plt>
  xor    %eax,%eax
  call   <CDO_mostraAtual@plt>
  lea    D234(%rip),%rdi
  call   <puts@plt>
  xor    %eax,%eax
  call   <CDO_mostraTodos@plt>
  xor    %eax,%eax
  call   <CDO_limpa@plt>
  xor    %eax,%eax
  call   <CDO_libera@plt>
  lea    D18(%rip),%rdi
  call   <puts@plt>
  mov    0x58(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L8
  add    $0x60,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
L8:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: data_tag: D100
type: string
name: parse_data
arguments: data_tag: D3
type: string
name: parse_data
arguments: data_tag: D79
type: string
name: parse_data
arguments: data_tag: D146
type: string
name: parse_data
arguments: data_tag: D237
type: string
name: parse_data
arguments: data_tag: D121
type: string
name: parse_data
arguments: data_tag: D241
type: string
name: parse_data
arguments: data_tag: D164
type: string
name: parse_data
arguments: data_tag: D73
type: string
name: parse_data
arguments: data_tag: D44
type: string
name: parse_data
arguments: data_tag: D202
type: string
name: parse_data
arguments: data_tag: D342
type: string
name: parse_data
arguments: data_tag: D158
type: string
name: parse_data
arguments: data_tag: D354
type: string
name: parse_data
arguments: data_tag: D125
type: string
name: parse_data
arguments: data_tag: D113
type: string
name: parse_data
arguments: data_tag: D210
type: string
name: parse_data
arguments: data_tag: D253
type: string
name: parse_data
arguments: data_tag: D86
type: string
name: parse_data
arguments: data_tag: D207
type: string
name: parse_data
arguments: data_tag: D27
type: string
name: parse_data
arguments: data_tag: D296
type: string
name: parse_data
arguments: data_tag: D180
type: string
name: parse_data
arguments: data_tag: D293
type: string
name: parse_data
arguments: data_tag: D75
type: string
name: parse_data
arguments: data_tag: D270
type: string
name: parse_data
arguments: data_tag: D14
type: string
name: parse_data
arguments: data_tag: D233
type: string
name: parse_data
arguments: data_tag: D77
type: string
name: parse_data
arguments: data_tag: D58
type: string
name: parse_data
arguments: data_tag: D341
type: string
name: parse_data
arguments: data_tag: D204
type: string
name: parse_data
arguments: data_tag: D41
type: string
name: parse_data
arguments: data_tag: D280
type: string
name: parse_data
arguments: data_tag: D138
type: string
name: parse_data
arguments: data_tag: D234
type: string
name: parse_data
arguments: data_tag: D18
type: string

tool: D100: defrontePuc

tool: D3: AvQalquer

tool: D79: umBairro

tool: D146: RioDeJaneiro

tool: D237: Ra

tool: D121: bmMail@mail

tool: D241: 12345678901

tool: D164: Bruce

tool: D73: BrasilComS

tool: D44: vamos alterar nome

tool: D202: Marcellino

tool: D342: %d


tool: D158: vamos consultar o nome

tool: D354: Rb

tool: D125: cmMail@mail

tool: D113: 22345678901

tool: D210: Souza

tool: D253: BrasilComB

tool: D86: Rc

tool: D207: Pereira

tool: D27: dmMail@mail

tool: D296: 32345678901

tool: D180: BrasilComC

tool: D293: Rd

tool: D75: emMail@mail

tool: D270: 42345678901

tool: D14: De

tool: D233: BrasilComD

tool: D77: Re

tool: D58: fmMail@mail

tool: D341: 52345678901

tool: D204: Andrade

tool: D41: BrasilComE

tool: D280: vamos procurar por um nome

tool: D138: vamos retirar o atual

tool: D234: vamos mostrar todos

tool: D18: FIM

assistant: ```c
int main(void) {
  char nome[80];
  CDO_cria();
  CDO_cadastra("Bruce", 111222333, "12345678901", 1112223, "bmMail@mail", 111222333, 11, 12, 2196, "BrasilComS", "Ra", "RioDeJaneiro", "umBairro", "AvQalquer", 666, "defrontePuc");
  CDO_mostraAtual();
  printf("vamos alterar nome\n");
  printf("%d\n", CDO_alteraNome("Marcellino"));
  CDO_mostraAtual();
  printf("vamos consultar o nome\n");
  CDO_consultaNome(nome);
  printf("%s\n", nome);
  CDO_cadastra("Souza", 121222333, "22345678901", 2112223, "cmMail@mail", 211222333, 12, 12, 2196, "BrasilComB", "Rb", "RioDeJaneiro", "umBairro", "AvQalquer", 666, "defrontePuc");
  CDO_cadastra("Pereira", 131222333, "32345678901", 3112223, "dmMail@mail", 311222333, 13, 12, 2196, "BrasilComC", "Rc", "RioDeJaneiro", "umBairro", "AvQalquer", 666, "defrontePuc");
  CDO_cadastra("De", 141222333, "42345678901", 4112223, "emMail@mail", 411222333, 14, 12, 2196, "BrasilComD", "Rd", "RioDeJaneiro", "umBairro", "AvQalquer", 666, "defrontePuc");
  CDO_cadastra("Andrade", 151222333, "52345678901", 5112223, "fmMail@mail", 511222333, 15, 12, 2196, "BrasilComE", "Re", "RioDeJaneiro", "umBairro", "AvQalquer", 666, "defrontePuc");
  printf("vamos procurar por um nome\n");
  CDO_buscaPorNome("Pereira");
  CDO_mostraAtual();
  printf("vamos retirar o atual\n");
  CDO_retira();
  CDO_mostraAtual();
  printf("vamos mostrar todos\n");
  CDO_mostraTodos();
  CDO_limpa();
  CDO_libera();
  printf("FIM\n");
  return 0;
}
```