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

```asm
<constellationOut>:
  endbr64
  lea    D2(%rip),%r8
  add    $0x4,%rdi
  mov    %r8,%rax
  lea    0x31(%r8),%rcx
  jmp    L59
  nopl   0x0(%rax,%rax,1)
L147:
  cmp    $0xffffffff,%edx
  je     L103
  cmp    $0x3,%edx
  je     L323
  cmp    $0xfffffffd,%edx
  jne    L281
  mov    (%rdi),%edx
  cmp    $0xfffffffd,%edx
  je     L265
  cmp    $0xffffffff,%edx
  je     L192
  cmp    $0x3,%edx
  je     L89
  cmp    $0x1,%edx
  jne    L281
  movb   $0xf,(%rax)
  nopl   0x0(%rax)
L281:
  add    $0x1,%rax
  add    $0x8,%rdi
  cmp    %rcx,%rax
  je     L269
L59:
  mov    -0x4(%rdi),%edx
  cmp    $0x1,%edx
  jne    L147
  mov    (%rdi),%edx
  cmp    $0xffffffff,%edx
  je     L246
  cmp    $0xfffffffd,%edx
  je     L1
  cmp    $0x1,%edx
  je     L174
  cmp    $0x3,%edx
  jne    L281
  movb   $0xc,(%rax)
  add    $0x1,%rax
  add    $0x8,%rdi
  cmp    %rcx,%rax
  jne    L59
L269:
  mov    %r8,%rax
  ret
  nopl   0x0(%rax,%rax,1)
L103:
  mov    (%rdi),%edx
  cmp    $0xffffffff,%edx
  je     L205
  cmp    $0xfffffffd,%edx
  je     L149
  cmp    $0x1,%edx
  je     L145
  cmp    $0x3,%edx
  jne    L281
  movb   $0xd,(%rax)
  jmp    L281
  nopl   0x0(%rax,%rax,1)
L323:
  mov    (%rdi),%edx
  cmp    $0xfffffffd,%edx
  je     L127
  cmp    $0xffffffff,%edx
  je     L331
  cmp    $0x3,%edx
  je     L333
  cmp    $0x1,%edx
  jne    L281
  movb   $0xe,(%rax)
  jmp    L281
  xchg   %ax,%ax
L246:
  movb   $0x0,(%rax)
  jmp    L281
  nopl   0x0(%rax,%rax,1)
L205:
  movb   $0x1,(%rax)
  jmp    L281
  nopl   0x0(%rax,%rax,1)
L127:
  movb   $0x2,(%rax)
  jmp    L281
  nopl   0x0(%rax,%rax,1)
L265:
  movb   $0x3,(%rax)
  jmp    L281
  nopl   0x0(%rax,%rax,1)
L192:
  movb   $0x4,(%rax)
  jmp    L281
  nopl   0x0(%rax,%rax,1)
L331:
  movb   $0x5,(%rax)
  jmp    L281
  nopl   0x0(%rax,%rax,1)
L149:
  movb   $0x6,(%rax)
  jmp    L281
  nopl   0x0(%rax,%rax,1)
L1:
  movb   $0x7,(%rax)
  jmp    L281
  nopl   0x0(%rax,%rax,1)
L89:
  movb   $0x8,(%rax)
  jmp    L281
  nopl   0x0(%rax,%rax,1)
L333:
  movb   $0x9,(%rax)
  jmp    L281
  nopl   0x0(%rax,%rax,1)
L145:
  movb   $0xa,(%rax)
  jmp    L281
  nopl   0x0(%rax,%rax,1)
L174:
  movb   $0xb,(%rax)
  jmp    L281
```

assistant: ```c
char *constellationOut(int *encDibit) {
  static char constellationPoints[49];
  int a, index = 0;
  for (a = 0; a < 98; a = a + 2) {
    if ((*(encDibit + a) == +1) && (*(encDibit + a + 1) == -1))
      constellationPoints[index] = 0;
    else if ((*(encDibit + a) == -1) && (*(encDibit + a + 1) == -1))
      constellationPoints[index] = 1;
    else if ((*(encDibit + a) == +3) && (*(encDibit + a + 1) == -3))
      constellationPoints[index] = 2;
    else if ((*(encDibit + a) == -3) && (*(encDibit + a + 1) == -3))
      constellationPoints[index] = 3;
    else if ((*(encDibit + a) == -3) && (*(encDibit + a + 1) == -1))
      constellationPoints[index] = 4;
    else if ((*(encDibit + a) == +3) && (*(encDibit + a + 1) == -1))
      constellationPoints[index] = 5;
    else if ((*(encDibit + a) == -1) && (*(encDibit + a + 1) == -3))
      constellationPoints[index] = 6;
    else if ((*(encDibit + a) == +1) && (*(encDibit + a + 1) == -3))
      constellationPoints[index] = 7;
    else if ((*(encDibit + a) == -3) && (*(encDibit + a + 1) == +3))
      constellationPoints[index] = 8;
    else if ((*(encDibit + a) == +3) && (*(encDibit + a + 1) == +3))
      constellationPoints[index] = 9;
    else if ((*(encDibit + a) == -1) && (*(encDibit + a + 1) == +1))
      constellationPoints[index] = 10;
    else if ((*(encDibit + a) == +1) && (*(encDibit + a + 1) == +1))
      constellationPoints[index] = 11;
    else if ((*(encDibit + a) == +1) && (*(encDibit + a + 1) == +3))
      constellationPoints[index] = 12;
    else if ((*(encDibit + a) == -1) && (*(encDibit + a + 1) == +3))
      constellationPoints[index] = 13;
    else if ((*(encDibit + a) == +3) && (*(encDibit + a + 1) == +1))
      constellationPoints[index] = 14;
    else if ((*(encDibit + a) == -3) && (*(encDibit + a + 1) == +1))
      constellationPoints[index] = 15;
    index++;
  }
  return constellationPoints;
}
```