user: Translate the below assembly code into C programming language:

```asm
<normal_var_and_pointers>:
  endbr64
  push   %rbp
  mov    $0xa,%esi
  lea    D68(%rip),%rdi
  xor    %eax,%eax
  lea    D84(%rip),%rbp
  call   <printf@plt>
  lea    D39(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0xb,%esi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D19(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0xa,%esi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D37(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0xb,%esi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D41(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D90(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D88(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x14,%esi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D52(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D21(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbp,%rdi
  mov    $0xb,%esi
  xor    %eax,%eax
  pop    %rbp
  jmp    1050 <printf@plt>
```

tool_calls: name: parse_data
arguments: label: D68
type_guessed: string
name: parse_data
arguments: label: D84
type_guessed: string
name: parse_data
arguments: label: D39
type_guessed: string
name: parse_data
arguments: label: D19
type_guessed: string
name: parse_data
arguments: label: D37
type_guessed: string
name: parse_data
arguments: label: D41
type_guessed: string
name: parse_data
arguments: label: D90
type_guessed: string
name: parse_data
arguments: label: D88
type_guessed: string
name: parse_data
arguments: label: D52
type_guessed: string
name: parse_data
arguments: label: D21
type_guessed: string

tool: D68: 
Original value of i: %i

tool: D84: 
		New value of i: %i

tool: D39: 
	Incrementing value of i via i.

tool: D19: 
	Decrementing value of i via pointer `int * ptrToVar`.

tool: D37: 
	Incrementing value of i via pointer to constant location: `int * const ptrToConstantLoc`.

tool: D41: 
	Decrementing value of i via pointer to constant var: `const int * ptrToConstantVar`.

tool: D90: 
ERROR: cannot decrement as to what it points cannot be modified for `const int * ptrToConstantVar`.

tool: D88: 
INFO: Though we can point to entirely different variable.

tool: D52: 
	Incrementing value of i via pointer to constant var and location: `const int * const ptrToConstantVarAndLoc`.

tool: D21: 
ERROR: Cannot change location or value for `const int * const ptrToConstantVarAndLoc`.

assistant: ```c
void normal_var_and_pointers() {
  int other = 20;
  int i = 10;
  int *ptrToVar = &i;
  int *const ptrToConstantLoc = &i;
  const int *ptrToConstantVar = &i;
  const int *const ptrToConstantVarAndLoc = &i;
  printf("\nOriginal value of i: %i", i);
  printf("\n\tIncrementing value of i via i.");
  i++;
  printf("\n\t\tNew value of i: %i", i);
  printf("\n\tDecrementing value of i via pointer `int * ptrToVar`.");
  --*ptrToVar;
  printf("\n\t\tNew value of i: %i", *ptrToVar);
  printf("\n\tIncrementing value of i via pointer to constant location: `int * const ptrToConstantLoc`.");
  ++*ptrToConstantLoc;
  printf("\n\t\tNew value of i: %i", *ptrToConstantLoc);
  printf("\n\tDecrementing value of i via pointer to constant var: `const int * ptrToConstantVar`.");
  printf("\nERROR: cannot decrement as to what it points cannot be modified for `const int * ptrToConstantVar`.");
  printf("\nINFO: Though we can point to entirely different variable.");
  ptrToConstantVar = &other;
  printf("\n\t\tNew value of i: %i", *ptrToConstantVar);
  printf("\n\tIncrementing value of i via pointer to constant var and location: `const int * const ptrToConstantVarAndLoc`.");
  printf("\nERROR: Cannot change location or value for `const int * const ptrToConstantVarAndLoc`.");
  printf("\n\t\tNew value of i: %i", *ptrToConstantVarAndLoc);
}
```