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

```asm
<main>:
  endbr64
  push   %r14
  push   %r13
  lea    D314(%rip),%r13
  push   %r12
  lea    D347(%rip),%r12
  push   %rbp
  lea    D238(%rip),%rbp
  push   %rbx
  lea    D272(%rip),%rbx
  sub    $0x60,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x58(%rsp)
  xor    %eax,%eax
  call   <CDO_cria@plt>
  lea    D131(%rip),%rax
  push   %r13
  mov    $0x6a11e3d,%r9d
  push   $0x29a
  lea    D180(%rip),%r8
  mov    $0x10f89f,%ecx
  lea    D276(%rip),%rdx
  push   %r12
  mov    $0x6a11e3d,%esi
  lea    D25(%rip),%rdi
  push   %rbp
  push   %rbx
  push   %rax
  lea    D250(%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    D242(%rip),%rdi
  mov    %rsp,%r14
  call   <puts@plt>
  lea    D303(%rip),%rdi
  call   <CDO_alteraNome@plt>
  lea    D233(%rip),%rdi
  mov    %eax,%esi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %eax,%eax
  call   <CDO_mostraAtual@plt>
  lea    D32(%rip),%rdi
  call   <puts@plt>
  mov    %r14,%rdi
  call   <CDO_consultaNome@plt>
  mov    %r14,%rdi
  call   <puts@plt>
  lea    D358(%rip),%rax
  push   %r13
  mov    $0xc96ff3d,%r9d
  push   $0x29a
  lea    D224(%rip),%r8
  mov    $0x203adf,%ecx
  lea    D92(%rip),%rdx
  push   %r12
  mov    $0x739b4bd,%esi
  lea    D330(%rip),%rdi
  push   %rbp
  push   %rbx
  push   %rax
  lea    D57(%rip),%rax
  push   %rax
  push   $0x894
  push   $0xc
  push   $0xc
  call   <CDO_cadastra@plt>
  mov    %r14,%rsp
  lea    D192(%rip),%rax
  lea    D168(%rip),%r14
  push   %r13
  mov    $0x128ce03d,%r9d
  mov    $0x2f7d1f,%ecx
  mov    %r14,%rdi
  push   $0x29a
  lea    D284(%rip),%r8
  mov    $0x7d24b3d,%esi
  lea    D170(%rip),%rdx
  push   %r12
  push   %rbp
  push   %rbx
  push   %rax
  lea    D353(%rip),%rax
  push   %rax
  push   $0x894
  push   $0xc
  push   $0xd
  call   <CDO_cadastra@plt>
  add    $0x50,%rsp
  lea    D341(%rip),%rax
  mov    $0x1882c13d,%r9d
  push   %r13
  lea    D253(%rip),%r8
  mov    $0x3ebf5f,%ecx
  lea    D299(%rip),%rdx
  push   $0x29a
  mov    $0x86ae1bd,%esi
  lea    D53(%rip),%rdi
  push   %r12
  push   %rbp
  push   %rbx
  push   %rax
  lea    D271(%rip),%rax
  push   %rax
  push   $0x894
  push   $0xc
  push   $0xe
  call   <CDO_cadastra@plt>
  add    $0x50,%rsp
  lea    D39(%rip),%rax
  mov    $0x1e78a23d,%r9d
  push   %r13
  lea    D266(%rip),%r8
  mov    $0x4e019f,%ecx
  lea    D122(%rip),%rdx
  push   $0x29a
  mov    $0x903783d,%esi
  lea    D259(%rip),%rdi
  push   %r12
  push   %rbp
  push   %rbx
  push   %rax
  lea    D261(%rip),%rax
  push   %rax
  push   $0x894
  push   $0xc
  push   $0xf
  call   <CDO_cadastra@plt>
  add    $0x50,%rsp
  lea    D175(%rip),%rdi
  call   <puts@plt>
  mov    %r14,%rdi
  call   <CDO_buscaPorNome@plt>
  xor    %eax,%eax
  call   <CDO_mostraAtual@plt>
  lea    D344(%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    D2(%rip),%rdi
  call   <puts@plt>
  mov    0x58(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L1
  add    $0x60,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
L1:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: disassemble_data
arguments: data_tag: D314
type: string
name: disassemble_data
arguments: data_tag: D347
type: string
name: disassemble_data
arguments: data_tag: D238
type: string
name: disassemble_data
arguments: data_tag: D272
type: string
name: disassemble_data
arguments: data_tag: D131
type: string
name: disassemble_data
arguments: data_tag: D180
type: string
name: disassemble_data
arguments: data_tag: D276
type: string
name: disassemble_data
arguments: data_tag: D25
type: string
name: disassemble_data
arguments: data_tag: D250
type: string
name: disassemble_data
arguments: data_tag: D242
type: string
name: disassemble_data
arguments: data_tag: D303
type: string
name: disassemble_data
arguments: data_tag: D233
type: string
name: disassemble_data
arguments: data_tag: D32
type: string
name: disassemble_data
arguments: data_tag: D358
type: string
name: disassemble_data
arguments: data_tag: D224
type: string
name: disassemble_data
arguments: data_tag: D92
type: string
name: disassemble_data
arguments: data_tag: D330
type: string
name: disassemble_data
arguments: data_tag: D57
type: string
name: disassemble_data
arguments: data_tag: D192
type: string
name: disassemble_data
arguments: data_tag: D168
type: string
name: disassemble_data
arguments: data_tag: D284
type: string
name: disassemble_data
arguments: data_tag: D170
type: string
name: disassemble_data
arguments: data_tag: D353
type: string
name: disassemble_data
arguments: data_tag: D341
type: string
name: disassemble_data
arguments: data_tag: D253
type: string
name: disassemble_data
arguments: data_tag: D299
type: string
name: disassemble_data
arguments: data_tag: D53
type: string
name: disassemble_data
arguments: data_tag: D271
type: string
name: disassemble_data
arguments: data_tag: D39
type: string
name: disassemble_data
arguments: data_tag: D266
type: string
name: disassemble_data
arguments: data_tag: D122
type: string
name: disassemble_data
arguments: data_tag: D259
type: string
name: disassemble_data
arguments: data_tag: D261
type: string
name: disassemble_data
arguments: data_tag: D175
type: string
name: disassemble_data
arguments: data_tag: D344
type: string
name: disassemble_data
arguments: data_tag: D234
type: string
name: disassemble_data
arguments: data_tag: D2
type: string

tool: D314: defrontePuc

tool: D347: AvQalquer

tool: D238: umBairro

tool: D272: RioDeJaneiro

tool: D131: Ra

tool: D180: bmMail@mail

tool: D276: 12345678901

tool: D25: Bruce

tool: D250: BrasilComS

tool: D242: vamos alterar nome

tool: D303: Marcellino

tool: D233: %d


tool: D32: vamos consultar o nome

tool: D358: Rb

tool: D224: cmMail@mail

tool: D92: 22345678901

tool: D330: Souza

tool: D57: BrasilComB

tool: D192: Rc

tool: D168: Pereira

tool: D284: dmMail@mail

tool: D170: 32345678901

tool: D353: BrasilComC

tool: D341: Rd

tool: D253: emMail@mail

tool: D299: 42345678901

tool: D53: De

tool: D271: BrasilComD

tool: D39: Re

tool: D266: fmMail@mail

tool: D122: 52345678901

tool: D259: Andrade

tool: D261: BrasilComE

tool: D175: vamos procurar por um nome

tool: D344: vamos retirar o atual

tool: D234: vamos mostrar todos

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