user: What is the c source code of the assembly code below:

```asm
<setup_memory_4712>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D0(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x30001,%esi
  mov    $0x18006f98,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x30000,%esi
  mov    $0x18006f98,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x10000,%esi
  mov    $0x18006f98,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x48000,%esi
  mov    $0x18006004,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x754da,%esi
  mov    $0x1800601c,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x23232323,%esi
  mov    $0x18006034,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x14500200,%esi
  mov    $0x18006038,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x22021416,%esi
  mov    $0x1800603c,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x2,%esi
  mov    $0x18006000,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x8,%esi
  mov    $0x18006000,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x4,%esi
  mov    $0x18006000,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x4,%esi
  mov    $0x18006000,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x4,%esi
  mov    $0x18006000,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x4,%esi
  mov    $0x18006000,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x4,%esi
  mov    $0x18006000,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x4,%esi
  mov    $0x18006000,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x4,%esi
  mov    $0x18006000,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x4,%esi
  mov    $0x18006000,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x840f,%esi
  mov    $0x18006008,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x32,%esi
  mov    $0x18006010,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x10,%esi
  mov    $0x18006000,%edi
  call   <ejtag_dma_write@plt>
  mov    $0x1,%esi
  mov    $0x18006000,%edi
  call   <ejtag_dma_write@plt>
  lea    D7(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: read_data
arguments: label: D0
type_infered: string
name: read_data
arguments: label: D7
type_infered: string

tool: D0: Configuring SDRAM... 

tool: D7: Done



assistant: ```c
void setup_memory_4712(void) {
  printf("Configuring SDRAM... ");
  ejtag_dma_write(0x18006f98, 0x00030001);
  ejtag_dma_write(0x18006f98, 0x00030000);
  ejtag_dma_write(0x18006f98, 0x00010000);
  ejtag_dma_write(0x18006004, 0x00048000);
  ejtag_dma_write(0x1800601c, 0x000754da);
  ejtag_dma_write(0x18006034, 0x23232323);
  ejtag_dma_write(0x18006038, 0x14500200);
  ejtag_dma_write(0x1800603c, 0x22021416);
  ejtag_dma_write(0x18006000, 0x00000002);
  ejtag_dma_write(0x18006000, 0x00000008);
  ejtag_dma_write(0x18006000, 0x00000004);
  ejtag_dma_write(0x18006000, 0x00000004);
  ejtag_dma_write(0x18006000, 0x00000004);
  ejtag_dma_write(0x18006000, 0x00000004);
  ejtag_dma_write(0x18006000, 0x00000004);
  ejtag_dma_write(0x18006000, 0x00000004);
  ejtag_dma_write(0x18006000, 0x00000004);
  ejtag_dma_write(0x18006000, 0x00000004);
  ejtag_dma_write(0x18006008, 0x0000840f);
  ejtag_dma_write(0x18006010, 0x00000032);
  ejtag_dma_write(0x18006000, 0x00000010);
  ejtag_dma_write(0x18006000, 0x00000001);
  printf("Done\n\n");
}
```