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

```asm
<const_locs>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x50,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movq   $0x1000,-0x18(%rbp)
  movq   $0x1100,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  cmp    %rax,-0x10(%rbp)
  jne    L108
  lea    -0x48(%rbp),%rax
  lea    -0x4c(%rbp),%rdx
  sub    %rdx,%rax
  sar    $0x2,%rax
  mov    %eax,-0x44(%rbp)
L108:
  mov    -0x18(%rbp),%rax
  cmp    %rax,-0x10(%rbp)
  jne    L41
  lea    -0x48(%rbp),%rax
  lea    -0x4c(%rbp),%rdx
  sub    %rdx,%rax
  sar    $0x2,%rax
  mov    %eax,-0x40(%rbp)
L41:
  mov    -0x18(%rbp),%rax
  cmp    %rax,-0x10(%rbp)
  jae    L60
  lea    -0x48(%rbp),%rax
  lea    -0x4c(%rbp),%rdx
  sub    %rdx,%rax
  sar    $0x2,%rax
  mov    %eax,-0x3c(%rbp)
L60:
  mov    -0x18(%rbp),%rax
  cmp    %rax,-0x10(%rbp)
  jae    L11
  lea    -0x48(%rbp),%rax
  lea    -0x4c(%rbp),%rdx
  sub    %rdx,%rax
  sar    $0x2,%rax
  mov    %eax,-0x38(%rbp)
L11:
  mov    -0x18(%rbp),%rax
  cmp    %rax,-0x10(%rbp)
  ja     L113
  lea    -0x48(%rbp),%rax
  lea    -0x4c(%rbp),%rdx
  sub    %rdx,%rax
  sar    $0x2,%rax
  mov    %eax,-0x34(%rbp)
L113:
  mov    -0x18(%rbp),%rax
  cmp    %rax,-0x10(%rbp)
  ja     L54
  lea    -0x48(%rbp),%rax
  lea    -0x4c(%rbp),%rdx
  sub    %rdx,%rax
  sar    $0x2,%rax
  mov    %eax,-0x30(%rbp)
L54:
  mov    -0x18(%rbp),%rdx
  mov    -0x10(%rbp),%rax
  sub    %rdx,%rax
  cmp    $0x100,%rax
  je     L101
  lea    -0x48(%rbp),%rax
  lea    -0x4c(%rbp),%rdx
  sub    %rdx,%rax
  sar    $0x2,%rax
  mov    %eax,-0x2c(%rbp)
L101:
  mov    -0x18(%rbp),%rax
  lea    -0xd8(%rip),%rdx        # 1144 <const_locs+0x2b>
  cmp    %rdx,%rax
  jne    L69
  lea    -0x48(%rbp),%rax
  lea    -0x4c(%rbp),%rdx
  sub    %rdx,%rax
  sar    $0x2,%rax
  mov    %eax,-0x28(%rbp)
L69:
  mov    -0x18(%rbp),%rax
  lea    -0xfa(%rip),%rdx        # 1144 <const_locs+0x2b>
  cmp    %rdx,%rax
  jne    L5
  lea    -0x48(%rbp),%rax
  lea    -0x4c(%rbp),%rdx
  sub    %rdx,%rax
  sar    $0x2,%rax
  mov    %eax,-0x24(%rbp)
L5:
  mov    -0x18(%rbp),%rdx
  lea    -0x18(%rbp),%rax
  cmp    %rax,%rdx
  jne    L92
  lea    -0x48(%rbp),%rax
  lea    -0x4c(%rbp),%rdx
  sub    %rdx,%rax
  sar    $0x2,%rax
  mov    %eax,-0x20(%rbp)
L92:
  mov    -0x18(%rbp),%rdx
  lea    -0x18(%rbp),%rax
  cmp    %rax,%rdx
  jne    L73
  lea    -0x48(%rbp),%rax
  lea    -0x4c(%rbp),%rdx
  sub    %rdx,%rax
  sar    $0x2,%rax
  mov    %eax,-0x1c(%rbp)
L73:
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L19
  call   <__stack_chk_fail@plt>
L19:
  leave
  ret
```

assistant: ```c
void const_locs() {
  char *a = (char *)0x1000;
  char *b = (char *)0x1100;
start:
  if (a == b)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (!(a != b))
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (a > b)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (b < a)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (a >= b)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (b <= a)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (b - a != 0x100)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (&&start == a)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (a == &&start)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if (&a == (char **)a)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
  if ((char **)a == &a)
    do {
      int a, b;
      int c = &b - &a;
    } while (0);
}
```