user: What would the C source look like for the assembly code provided here?

```asm
<main>:
  endbr64
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x60,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x58(%rsp)
  xor    %eax,%eax
  call   <CDO_cria@plt>
  lea    D113(%rip),%r13
  push   %r13
  push   $0x29a
  lea    D35(%rip),%r12
  push   %r12
  lea    D352(%rip),%rbp
  push   %rbp
  lea    D307(%rip),%rbx
  push   %rbx
  lea    D164(%rip),%rax
  push   %rax
  lea    D82(%rip),%rax
  push   %rax
  push   $0x894
  push   $0xc
  push   $0xb
  mov    $0x6a11e3d,%r9d
  lea    D190(%rip),%r8
  mov    $0x10f89f,%ecx
  lea    D74(%rip),%rdx
  mov    $0x6a11e3d,%esi
  lea    D311(%rip),%rdi
  call   <CDO_cadastra@plt>
  add    $0x50,%rsp
  mov    $0x0,%eax
  call   <CDO_mostraAtual@plt>
  lea    D312(%rip),%rdi
  call   <puts@plt>
  lea    D67(%rip),%rdi
  call   <CDO_alteraNome@plt>
  mov    %eax,%esi
  lea    D185(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  call   <CDO_mostraAtual@plt>
  lea    D73(%rip),%rdi
  call   <puts@plt>
  mov    %rsp,%r14
  mov    %r14,%rdi
  call   <CDO_consultaNome@plt>
  mov    %r14,%rdi
  call   <puts@plt>
  push   %r13
  push   $0x29a
  push   %r12
  push   %rbp
  push   %rbx
  lea    D80(%rip),%rax
  push   %rax
  lea    D10(%rip),%rax
  push   %rax
  push   $0x894
  push   $0xc
  push   $0xc
  mov    $0xc96ff3d,%r9d
  lea    D327(%rip),%r8
  mov    $0x203adf,%ecx
  lea    D4(%rip),%rdx
  mov    $0x739b4bd,%esi
  lea    D288(%rip),%rdi
  call   <CDO_cadastra@plt>
  mov    %r14,%rsp
  push   %r13
  push   $0x29a
  push   %r12
  push   %rbp
  push   %rbx
  lea    D300(%rip),%rax
  push   %rax
  lea    D170(%rip),%rax
  push   %rax
  push   $0x894
  push   $0xc
  push   $0xd
  mov    $0x128ce03d,%r9d
  lea    D178(%rip),%r8
  mov    $0x2f7d1f,%ecx
  lea    D148(%rip),%rdx
  mov    $0x7d24b3d,%esi
  lea    D79(%rip),%r14
  mov    %r14,%rdi
  call   <CDO_cadastra@plt>
  add    $0x50,%rsp
  push   %r13
  push   $0x29a
  push   %r12
  push   %rbp
  push   %rbx
  lea    D47(%rip),%rax
  push   %rax
  lea    D251(%rip),%rax
  push   %rax
  push   $0x894
  push   $0xc
  push   $0xe
  mov    $0x1882c13d,%r9d
  lea    D18(%rip),%r8
  mov    $0x3ebf5f,%ecx
  lea    D345(%rip),%rdx
  mov    $0x86ae1bd,%esi
  lea    D64(%rip),%rdi
  call   <CDO_cadastra@plt>
  add    $0x50,%rsp
  push   %r13
  push   $0x29a
  push   %r12
  push   %rbp
  push   %rbx
  lea    D112(%rip),%rax
  push   %rax
  lea    D36(%rip),%rax
  push   %rax
  push   $0x894
  push   $0xc
  push   $0xf
  mov    $0x1e78a23d,%r9d
  lea    D62(%rip),%r8
  mov    $0x4e019f,%ecx
  lea    D217(%rip),%rdx
  mov    $0x903783d,%esi
  lea    D70(%rip),%rdi
  call   <CDO_cadastra@plt>
  add    $0x50,%rsp
  lea    D369(%rip),%rdi
  call   <puts@plt>
  mov    %r14,%rdi
  call   <CDO_buscaPorNome@plt>
  mov    $0x0,%eax
  call   <CDO_mostraAtual@plt>
  lea    D200(%rip),%rdi
  call   <puts@plt>
  mov    $0x0,%eax
  call   <CDO_retira@plt>
  mov    $0x0,%eax
  call   <CDO_mostraAtual@plt>
  lea    D320(%rip),%rdi
  call   <puts@plt>
  mov    $0x0,%eax
  call   <CDO_mostraTodos@plt>
  mov    $0x0,%eax
  call   <CDO_limpa@plt>
  mov    $0x0,%eax
  call   <CDO_libera@plt>
  lea    D44(%rip),%rdi
  call   <puts@plt>
  mov    0x58(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L1
  mov    $0x0,%eax
  add    $0x60,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
L1:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: label: D113
type_infered: string
name: parse_data
arguments: label: D35
type_infered: string
name: parse_data
arguments: label: D352
type_infered: string
name: parse_data
arguments: label: D307
type_infered: string
name: parse_data
arguments: label: D164
type_infered: string
name: parse_data
arguments: label: D82
type_infered: string
name: parse_data
arguments: label: D190
type_infered: string
name: parse_data
arguments: label: D74
type_infered: string
name: parse_data
arguments: label: D311
type_infered: string
name: parse_data
arguments: label: D312
type_infered: string
name: parse_data
arguments: label: D67
type_infered: string
name: parse_data
arguments: label: D185
type_infered: string
name: parse_data
arguments: label: D73
type_infered: string
name: parse_data
arguments: label: D80
type_infered: string
name: parse_data
arguments: label: D10
type_infered: string
name: parse_data
arguments: label: D327
type_infered: string
name: parse_data
arguments: label: D4
type_infered: string
name: parse_data
arguments: label: D288
type_infered: string
name: parse_data
arguments: label: D300
type_infered: string
name: parse_data
arguments: label: D170
type_infered: string
name: parse_data
arguments: label: D178
type_infered: string
name: parse_data
arguments: label: D148
type_infered: string
name: parse_data
arguments: label: D79
type_infered: string
name: parse_data
arguments: label: D47
type_infered: string
name: parse_data
arguments: label: D251
type_infered: string
name: parse_data
arguments: label: D18
type_infered: string
name: parse_data
arguments: label: D345
type_infered: string
name: parse_data
arguments: label: D64
type_infered: string
name: parse_data
arguments: label: D112
type_infered: string
name: parse_data
arguments: label: D36
type_infered: string
name: parse_data
arguments: label: D62
type_infered: string
name: parse_data
arguments: label: D217
type_infered: string
name: parse_data
arguments: label: D70
type_infered: string
name: parse_data
arguments: label: D369
type_infered: string
name: parse_data
arguments: label: D200
type_infered: string
name: parse_data
arguments: label: D320
type_infered: string
name: parse_data
arguments: label: D44
type_infered: string

tool: D113: defrontePuc

tool: D35: AvQalquer

tool: D352: umBairro

tool: D307: RioDeJaneiro

tool: D164: Ra

tool: D82: BrasilComS

tool: D190: bmMail@mail

tool: D74: 12345678901

tool: D311: Bruce

tool: D312: vamos alterar nome

tool: D67: Marcellino

tool: D185: %d


tool: D73: vamos consultar o nome

tool: D80: Rb

tool: D10: BrasilComB

tool: D327: cmMail@mail

tool: D4: 22345678901

tool: D288: Souza

tool: D300: Rc

tool: D170: BrasilComC

tool: D178: dmMail@mail

tool: D148: 32345678901

tool: D79: Pereira

tool: D47: Rd

tool: D251: BrasilComD

tool: D18: emMail@mail

tool: D345: 42345678901

tool: D64: De

tool: D112: Re

tool: D36: BrasilComE

tool: D62: fmMail@mail

tool: D217: 52345678901

tool: D70: Andrade

tool: D369: vamos procurar por um nome

tool: D200: vamos retirar o atual

tool: D320: vamos mostrar todos

tool: D44: 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;
}
```