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

```asm
<normal_var_and_pointers>:
  endbr64
  push   %rbp
  mov    $0xa,%esi
  lea    D91(%rip),%rdi
  xor    %eax,%eax
  lea    D57(%rip),%rbp
  call   <printf@plt>
  lea    D72(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0xb,%esi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D64(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0xa,%esi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D18(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0xb,%esi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D59(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D25(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D39(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x14,%esi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D96(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D86(%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: D91
type_infered: string
name: parse_data
arguments: label: D57
type_infered: string
name: parse_data
arguments: label: D72
type_infered: string
name: parse_data
arguments: label: D64
type_infered: string
name: parse_data
arguments: label: D18
type_infered: string
name: parse_data
arguments: label: D59
type_infered: string
name: parse_data
arguments: label: D25
type_infered: string
name: parse_data
arguments: label: D39
type_infered: string
name: parse_data
arguments: label: D96
type_infered: string
name: parse_data
arguments: label: D86
type_infered: string

tool: D91: 
Original value of i: %i

tool: D57: 
		New value of i: %i

tool: D72: 
	Incrementing value of i via i.

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

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

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

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

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

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

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