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

```asm
<get_option_1>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  movl   $0x0,-0xc(%rbp)
  movl   $0x0,-0x8(%rbp)
  movl   $0x0,-0x4(%rbp)
  movl   $0x0,-0x10(%rbp)
  nop
  jmp    L1
L14:
  mov    $0x0,%eax
  call   <get_key@plt>
  cmp    $0x39,%eax
  ja     L1
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D34(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D34(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    $0x0,%eax
  call   <popclear@plt>
  lea    D51(%rip),%rax
  mov    %rax,%rdx
  mov    $0x13,%esi
  mov    $0xb,%edi
  call   <cprint@plt>
  mov    $0x0,%edx
  mov    $0x1a,%esi
  mov    $0xb,%edi
  call   <getval@plt>
  mov    %eax,-0x8(%rbp)
  mov    $0x0,%eax
  call   <popclear@plt>
  lea    D16(%rip),%rax
  mov    %rax,%rdx
  mov    $0x13,%esi
  mov    $0xb,%edi
  call   <cprint@plt>
  mov    $0x0,%edx
  mov    $0x1a,%esi
  mov    $0xb,%edi
  call   <getval@plt>
  mov    %eax,-0xc(%rbp)
  mov    $0x0,%eax
  call   <popclear@plt>
  lea    D62(%rip),%rax
  mov    %rax,%rdx
  mov    $0x13,%esi
  mov    $0xb,%edi
  call   <cprint@plt>
  mov    $0x0,%edx
  mov    $0x1a,%esi
  mov    $0xb,%edi
  call   <getval@plt>
  mov    %eax,-0x4(%rbp)
  mov    $0x0,%eax
  call   <popclear@plt>
  mov    -0x4(%rbp),%ecx
  mov    -0xc(%rbp),%edx
  mov    -0x8(%rbp),%eax
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <change_timing@plt>
  jmp    L1
  mov    $0x0,%eax
  call   <popclear@plt>
  lea    D51(%rip),%rax
  mov    %rax,%rdx
  mov    $0x13,%esi
  mov    $0xb,%edi
  call   <cprint@plt>
  mov    $0x0,%edx
  mov    $0x1a,%esi
  mov    $0xb,%edi
  call   <getval@plt>
  mov    %eax,-0x8(%rbp)
  mov    -0x8(%rbp),%eax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <change_timing@plt>
  jmp    L1
  mov    $0x0,%eax
  call   <popclear@plt>
  lea    D16(%rip),%rax
  mov    %rax,%rdx
  mov    $0x13,%esi
  mov    $0xb,%edi
  call   <cprint@plt>
  mov    $0x0,%edx
  mov    $0x1a,%esi
  mov    $0xb,%edi
  call   <getval@plt>
  mov    %eax,-0xc(%rbp)
  mov    -0xc(%rbp),%eax
  mov    $0x0,%ecx
  mov    %eax,%edx
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <change_timing@plt>
  jmp    L1
  mov    $0x0,%eax
  call   <popclear@plt>
  lea    D62(%rip),%rax
  mov    %rax,%rdx
  mov    $0x13,%esi
  mov    $0xb,%edi
  call   <cprint@plt>
  mov    $0x0,%edx
  mov    $0x1a,%esi
  mov    $0xb,%edi
  call   <getval@plt>
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  mov    %eax,%ecx
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <change_timing@plt>
  jmp    L1
  mov    $0x0,%eax
  call   <popclear@plt>
  mov    $0x0,%eax
  call   <amd64_option@plt>
  addl   $0x1,-0x10(%rbp)
  mov    $0x0,%eax
  call   <popclear@plt>
  jmp    L1
  addl   $0x1,-0x10(%rbp)
  nop
L1:
  cmpl   $0x0,-0x10(%rbp)
  je     L14
  nop
  nop
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D51
datatype: string
name: unpack_data
arguments: data_label: D16
datatype: string
name: unpack_data
arguments: data_label: D62
datatype: string

tool: D51: tRCD: 

tool: D16: tRP: 

tool: D62: tRAS: 

assistant: ```c
void get_option_1() {
  int rp = 0, rcd = 0, ras = 0, sflag = 0;
  while (!sflag) {
    switch (get_key()) {
    case 2:
      popclear();
      cprint(8 + 3, 11 + 8, "tRCD: ");
      rcd = getval(8 + 3, 11 + 15, 0);
      popclear();
      cprint(8 + 3, 11 + 8, "tRP: ");
      rp = getval(8 + 3, 11 + 15, 0);
      popclear();
      cprint(8 + 3, 11 + 8, "tRAS: ");
      ras = getval(8 + 3, 11 + 15, 0);
      popclear();
      change_timing(0, rcd, rp, ras);
      break;
    case 3:
      popclear();
      cprint(8 + 3, 11 + 8, "tRCD: ");
      rcd = getval(8 + 3, 11 + 15, 0);
      change_timing(0, rcd, 0, 0);
      break;
    case 4:
      popclear();
      cprint(8 + 3, 11 + 8, "tRP: ");
      rp = getval(8 + 3, 11 + 15, 0);
      change_timing(0, 0, rp, 0);
      break;
    case 5:
      popclear();
      cprint(8 + 3, 11 + 8, "tRAS: ");
      ras = getval(8 + 3, 11 + 15, 0);
      change_timing(0, 0, 0, ras);
      break;
    case 6:
      popclear();
      amd64_option();
      sflag++;
      popclear();
      break;
    case 7:
      break;
    case 11:
    case 57:
      sflag++;
      break;
    }
  }
}
```