user: Converte this assembly snippet into its equivalent C code:

```asm
<main>:
  endbr64
  push   %rbp
  lea    D8(%rip),%rsi
  mov    $0x5d,%ecx
  sub    $0x5e0,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x5d8(%rsp)
  xor    %eax,%eax
  mov    %rsp,%rdi
  rep movsq %ds:(%rsi),%es:(%rdi)
  lea    0x2f0(%rsp),%rdi
  lea    D18(%rip),%rsi
  mov    $0x5d,%ecx
  rep movsq %ds:(%rsi),%es:(%rdi)
  mov    $0x1,%esi
  mov    $0x7d0,%edi
  call   <calloc@plt>
  lea    0x2f0(%rsp),%rsi
  mov    %rsp,%rdi
  mov    $0x2e7,%ecx
  mov    %rax,%rbp
  mov    %rax,%rdx
  call   <EncontraChave@plt>
  lea    D26(%rip),%rdi
  mov    %rbp,%rsi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <free@plt>
  mov    0x5d8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L1
  add    $0x5e0,%rsp
  xor    %eax,%eax
  pop    %rbp
  ret
L1:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: retrieve_data
arguments: tag: D8
type_infered: string
name: retrieve_data
arguments: tag: D18
type_infered: string
name: retrieve_data
arguments: tag: D26
type_infered: string

tool: D8: 12345678901065703304011031338370763392959061742177117741574752405286675751751314504012625336320365104661051291909178480948331328953939507131293079240283777803550434266953656933331862862836053872629918246535772390084354593076702934450791518879868380519997944757051401202663606740768021543612770901240982825779317596912107867285544985437368652710797055348487148149587590243274151793944598475566943017826205603956290299910129298589726700292721565513320871031576930809285943446191042007026945145706963385419521277601571208503379491200480304910489078359571596307622501134540377100878475810202910188059443398551447401411271192011985935673099472044705074971205559203895085818347347252899195454541511061949049056468259567711373961417054550528811252031

tool: D18: 10657033040110313383707633929590617421771177415747524052866757517513145040126253363203651046610512919091784809483313289539395071312930792402837778035504342669536569333318628628360538726299182465357723900843545930767029344507915188798683805199979447570514012026636067407680215436127709012409828257793175969121078672855449854373686527107970553484871481495875902432741517939445984755669430178262056039562902999101292985897267002927215655133208710315769308092859434461910420070269451457069633854195212776015712085033794912004803049104890783595715963076225011345403771008784758102029101880594433985514474014112711920119859356730994720447050749712055592038950858183473472528991954545415110619490490564682595677113739614170545505288112520310000071232

tool: D26: %s


assistant: ```c
int main() {
  int Tamanho = 743;
  char Texto[] = "12345678901065703304011031338370763392959061742177117741574752405286675751751314504012625336320365104661051291909178480948331328953939507131293079240283777803550434266953656933331862862836053872629918246535772390084354593076702934450791518879868380519997944757051401202663606740768021543612770901240982825779317596912107867285544985437368652710797055348487148149587590243274151793944598475566943017826205603956290299910129298589726700292721565513320871031576930809285943446191042007026945145706963385419521277601571208503379491200480304910489078359571596307622501134540377100878475810202910188059443398551447401411271192011985935673099472044705074971205559203895085818347347252899195454541511061949049056468259567711373961417054550528811252031";
  char Padrao[] = "10657033040110313383707633929590617421771177415747524052866757517513145040126253363203651046610512919091784809483313289539395071312930792402837778035504342669536569333318628628360538726299182465357723900843545930767029344507915188798683805199979447570514012026636067407680215436127709012409828257793175969121078672855449854373686527107970553484871481495875902432741517939445984755669430178262056039562902999101292985897267002927215655133208710315769308092859434461910420070269451457069633854195212776015712085033794912004803049104890783595715963076225011345403771008784758102029101880594433985514474014112711920119859356730994720447050749712055592038950858183473472528991954545415110619490490564682595677113739614170545505288112520310000071232";
  char *Chave = (char *)calloc(2000, sizeof(char));
  EncontraChave(Texto, Padrao, Chave, Tamanho);
  printf("%s\n", Chave);
  free(Chave);
  return 0;
}
```