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

```asm
<constellationOut>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x18(%rbp)
  movl   $0x0,-0x4(%rbp)
  movl   $0x0,-0x8(%rbp)
  jmp    L18
L259:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L332
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xffffffff,%eax
  jne    L332
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0x0,(%rax,%rdx,1)
  jmp    L290
L332:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xffffffff,%eax
  jne    L388
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xffffffff,%eax
  jne    L388
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0x1,(%rax,%rdx,1)
  jmp    L290
L388:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L168
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xfffffffd,%eax
  jne    L168
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0x2,(%rax,%rdx,1)
  jmp    L290
L168:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xfffffffd,%eax
  jne    L96
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xfffffffd,%eax
  jne    L96
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0x3,(%rax,%rdx,1)
  jmp    L290
L96:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xfffffffd,%eax
  jne    L124
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xffffffff,%eax
  jne    L124
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0x4,(%rax,%rdx,1)
  jmp    L290
L124:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L154
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xffffffff,%eax
  jne    L154
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0x5,(%rax,%rdx,1)
  jmp    L290
L154:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xffffffff,%eax
  jne    L291
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xfffffffd,%eax
  jne    L291
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0x6,(%rax,%rdx,1)
  jmp    L290
L291:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L301
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xfffffffd,%eax
  jne    L301
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0x7,(%rax,%rdx,1)
  jmp    L290
L301:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xfffffffd,%eax
  jne    L134
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L134
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0x8,(%rax,%rdx,1)
  jmp    L290
L134:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L357
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L357
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0x9,(%rax,%rdx,1)
  jmp    L290
L357:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xffffffff,%eax
  jne    L288
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L288
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0xa,(%rax,%rdx,1)
  jmp    L290
L288:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L404
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L404
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0xb,(%rax,%rdx,1)
  jmp    L290
L404:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L480
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L480
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0xc,(%rax,%rdx,1)
  jmp    L290
L480:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xffffffff,%eax
  jne    L106
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L106
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0xd,(%rax,%rdx,1)
  jmp    L290
L106:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L277
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L277
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0xe,(%rax,%rdx,1)
  jmp    L290
L277:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0xfffffffd,%eax
  jne    L290
  mov    -0x8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L290
  mov    -0x4(%rbp),%eax
  cltq
  lea    D96(%rip),%rdx
  movb   $0xf,(%rax,%rdx,1)
L290:
  addl   $0x1,-0x4(%rbp)
  addl   $0x2,-0x8(%rbp)
L18:
  cmpl   $0x61,-0x8(%rbp)
  jle    L259
  lea    D96(%rip),%rax
  pop    %rbp
  ret
```

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;
}
```