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

```asm
<effect_intro>:
  endbr64
  push   %r12
  push   %rbp
  push   %rbx
  xor    %ebx,%ebx
  nopw   0x0(%rax,%rax,1)
L36:
  mov    %ebx,%r9d
  mov    $0x7,%r8d
  mov    $0x7,%ecx
  xor    %edx,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  add    $0x1,%ebx
  call   <box_wireframe@plt>
  mov    $0x12c,%edi
  call   <delay_ms@plt>
  cmp    $0x8,%ebx
  jne    L36
  xor    %ebx,%ebx
  nopl   (%rax)
L73:
  mov    %ebx,%edi
  add    $0x1,%ebx
  call   <clrplane_z@plt>
  mov    $0x12c,%edi
  call   <delay_ms@plt>
  cmp    $0x7,%ebx
  jne    L73
  mov    $0xffffffff,%esi
  mov    $0x2,%edi
  xor    %ebx,%ebx
  call   <shift@plt>
  nopw   0x0(%rax,%rax,1)
L199:
  mov    %ebx,%edi
  mov    $0x6,%edx
  xor    %esi,%esi
  add    $0x1,%ebx
  call   <setvoxel@plt>
  cmp    $0x8,%ebx
  jne    L199
  mov    $0x12c,%edi
  xor    %ebx,%ebx
  call   <delay_ms@plt>
  mov    $0xffffffff,%esi
  mov    $0x2,%edi
  call   <shift@plt>
  nopl   0x0(%rax)
L164:
  mov    %ebx,%edi
  mov    $0x5,%edx
  xor    %esi,%esi
  add    $0x1,%ebx
  call   <setvoxel@plt>
  cmp    $0x8,%ebx
  jne    L164
  mov    $0x6,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  xor    %ebx,%ebx
  call   <setvoxel@plt>
  mov    $0x6,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x12c,%edi
  call   <delay_ms@plt>
  mov    $0xffffffff,%esi
  mov    $0x2,%edi
  call   <shift@plt>
  nopl   0x0(%rax,%rax,1)
L72:
  mov    %ebx,%edi
  mov    $0x4,%edx
  xor    %esi,%esi
  add    $0x1,%ebx
  call   <setvoxel@plt>
  cmp    $0x8,%ebx
  jne    L72
  mov    $0x5,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  xor    %ebx,%ebx
  call   <setvoxel@plt>
  mov    $0x5,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x6,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  call   <setvoxel@plt>
  mov    $0x6,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x12c,%edi
  call   <delay_ms@plt>
  mov    $0xffffffff,%esi
  mov    $0x2,%edi
  call   <shift@plt>
  nop
L141:
  mov    %ebx,%edi
  mov    $0x3,%edx
  xor    %esi,%esi
  add    $0x1,%ebx
  call   <setvoxel@plt>
  cmp    $0x8,%ebx
  jne    L141
  mov    $0x4,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  xor    %ebx,%ebx
  call   <setvoxel@plt>
  mov    $0x4,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x5,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  call   <setvoxel@plt>
  mov    $0x5,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x6,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  call   <setvoxel@plt>
  mov    $0x6,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x12c,%edi
  call   <delay_ms@plt>
  mov    $0xffffffff,%esi
  mov    $0x2,%edi
  call   <shift@plt>
  xchg   %ax,%ax
L195:
  mov    %ebx,%edi
  mov    $0x2,%edx
  xor    %esi,%esi
  add    $0x1,%ebx
  call   <setvoxel@plt>
  cmp    $0x8,%ebx
  jne    L195
  mov    $0x3,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  xor    %ebx,%ebx
  call   <setvoxel@plt>
  mov    $0x3,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x4,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  call   <setvoxel@plt>
  mov    $0x4,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x5,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  call   <setvoxel@plt>
  mov    $0x5,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x6,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  call   <setvoxel@plt>
  mov    $0x6,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x12c,%edi
  call   <delay_ms@plt>
  mov    $0xffffffff,%esi
  mov    $0x2,%edi
  call   <shift@plt>
  nopl   (%rax)
L186:
  mov    %ebx,%edi
  mov    $0x1,%edx
  xor    %esi,%esi
  add    $0x1,%ebx
  call   <setvoxel@plt>
  cmp    $0x8,%ebx
  jne    L186
  mov    $0x2,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  xor    %ebx,%ebx
  call   <setvoxel@plt>
  mov    $0x2,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x3,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  call   <setvoxel@plt>
  mov    $0x3,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x4,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  call   <setvoxel@plt>
  mov    $0x4,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x5,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  call   <setvoxel@plt>
  mov    $0x5,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x12c,%edi
  call   <delay_ms@plt>
  mov    $0xffffffff,%esi
  mov    $0x2,%edi
  call   <shift@plt>
  nopl   (%rax)
L70:
  mov    %ebx,%edi
  xor    %edx,%edx
  xor    %esi,%esi
  add    $0x1,%ebx
  call   <setvoxel@plt>
  cmp    $0x8,%ebx
  jne    L70
  mov    $0x1,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  xor    %ebx,%ebx
  call   <setvoxel@plt>
  mov    $0x1,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x2,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  call   <setvoxel@plt>
  mov    $0x2,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x3,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  call   <setvoxel@plt>
  mov    $0x3,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x4,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  call   <setvoxel@plt>
  mov    $0x4,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x5,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  call   <setvoxel@plt>
  mov    $0x5,%edx
  xor    %esi,%esi
  mov    $0x7,%edi
  call   <setvoxel@plt>
  mov    $0x12c,%edi
  call   <delay_ms@plt>
  nopw   0x0(%rax,%rax,1)
L47:
  mov    %ebx,%r8d
  mov    $0x7,%r9d
  mov    $0x7,%ecx
  xor    %edx,%edx
  xor    %esi,%esi
  xor    %edi,%edi
  add    $0x1,%ebx
  call   <box_wireframe@plt>
  mov    $0x12c,%edi
  call   <delay_ms@plt>
  cmp    $0x8,%ebx
  jne    L47
  xor    %ebx,%ebx
  nopl   (%rax)
L202:
  mov    %ebx,%edi
  add    $0x1,%ebx
  call   <clrplane_y@plt>
  mov    $0x12c,%edi
  call   <delay_ms@plt>
  cmp    $0x7,%ebx
  jne    L202
  mov    $0x6,%ebp
  xchg   %ax,%ax
L171:
  mov    $0xffffffff,%esi
  mov    $0x3,%edi
  xor    %ebx,%ebx
  call   <shift@plt>
  nopl   0x0(%rax)
L11:
  mov    %ebx,%edi
  xor    %edx,%edx
  mov    %ebp,%esi
  add    $0x1,%ebx
  call   <setvoxel@plt>
  cmp    $0x8,%ebx
  jne    L11
  cmp    $0x6,%ebp
  je     L61
  mov    $0x6,%ebx
  nopl   (%rax)
L122:
  mov    %ebx,%esi
  xor    %edx,%edx
  xor    %edi,%edi
  call   <setvoxel@plt>
  mov    %ebx,%esi
  xor    %edx,%edx
  mov    $0x7,%edi
  call   <setvoxel@plt>
  sub    $0x1,%ebx
  cmp    %ebp,%ebx
  jne    L122
L61:
  mov    $0x12c,%edi
  call   <delay_ms@plt>
  sub    $0x1,%ebp
  jae    L171
  xor    %ebx,%ebx
  nopl   0x0(%rax)
L176:
  xor    %edi,%edi
  call   <fill@plt>
  mov    %ebx,%r9d
  mov    $0x7,%r8d
  xor    %edx,%edx
  mov    $0x7,%ecx
  xor    %esi,%esi
  xor    %edi,%edi
  add    $0x1,%ebx
  call   <box_walls@plt>
  mov    $0x12c,%edi
  call   <delay_ms@plt>
  cmp    $0x7,%ebx
  jne    L176
  mov    $0x1f4,%ebp
  mov    $0x7,%r12d
L183:
  sub    $0x4b,%ebp
  xor    %ebx,%ebx
L102:
  xor    %edi,%edi
  call   <fill@plt>
  mov    %r12d,%ecx
  mov    %ebx,%edx
  mov    %ebx,%esi
  sub    %ebx,%ecx
  mov    %ebx,%edi
  add    $0x1,%ebx
  mov    %ecx,%r9d
  mov    %ecx,%r8d
  call   <box_walls@plt>
  mov    %ebp,%edi
  call   <delay_ms@plt>
  cmp    $0x4,%ebx
  jne    L102
  mov    $0x3,%ebx
L92:
  xor    %edi,%edi
  call   <fill@plt>
  mov    %r12d,%ecx
  mov    %ebx,%edi
  mov    %ebx,%edx
  sub    %ebx,%ecx
  mov    %ebx,%esi
  mov    %ecx,%r9d
  mov    %ecx,%r8d
  call   <box_walls@plt>
  mov    %ebp,%edi
  call   <delay_ms@plt>
  sub    $0x1,%ebx
  jae    L92
  cmp    $0x7d,%ebp
  jne    L183
  mov    $0x7,%r12d
L178:
  add    $0x4b,%ebp
  xor    %ebx,%ebx
L41:
  xor    %edi,%edi
  call   <fill@plt>
  mov    %r12d,%ecx
  mov    %ebx,%edx
  mov    %ebx,%esi
  sub    %ebx,%ecx
  mov    %ebx,%edi
  add    $0x1,%ebx
  mov    %ecx,%r9d
  mov    %ecx,%r8d
  call   <box_walls@plt>
  mov    %ebp,%edi
  call   <delay_ms@plt>
  cmp    $0x4,%ebx
  jne    L41
  mov    $0x3,%ebx
L165:
  xor    %edi,%edi
  call   <fill@plt>
  mov    %r12d,%ecx
  mov    %ebx,%edi
  mov    %ebx,%edx
  sub    %ebx,%ecx
  mov    %ebx,%esi
  mov    %ecx,%r9d
  mov    %ecx,%r8d
  call   <box_walls@plt>
  mov    %ebp,%edi
  call   <delay_ms@plt>
  sub    $0x1,%ebx
  jae    L165
  cmp    $0x1f4,%ebp
  jne    L178
  pop    %rbx
  mov    $0x1f4,%edi
  pop    %rbp
  pop    %r12
  jmp    1110 <delay_ms@plt>
```

assistant: ```c
void effect_intro() {
  int cnt, cnt_2, time;
  for (cnt = 0; cnt <= 7; cnt++) {
    box_wireframe(0, 0, 0, 7, 7, cnt);
    delay_ms(300);
  }
  for (cnt = 0; cnt < 7; cnt++) {
    clrplane_z(cnt);
    delay_ms(300);
  }
  shift(2, -1);
  for (cnt = 0; cnt <= 7; cnt++) {
    setvoxel(cnt, 0, 6);
  }
  delay_ms(300);
  shift(2, -1);
  for (cnt = 0; cnt <= 7; cnt++) {
    setvoxel(cnt, 0, 5);
  }
  setvoxel(0, 0, 6);
  setvoxel(7, 0, 6);
  delay_ms(300);
  shift(2, -1);
  for (cnt = 0; cnt <= 7; cnt++) {
    setvoxel(cnt, 0, 4);
  }
  setvoxel(0, 0, 5);
  setvoxel(7, 0, 5);
  setvoxel(0, 0, 6);
  setvoxel(7, 0, 6);
  delay_ms(300);
  shift(2, -1);
  for (cnt = 0; cnt <= 7; cnt++) {
    setvoxel(cnt, 0, 3);
  }
  setvoxel(0, 0, 4);
  setvoxel(7, 0, 4);
  setvoxel(0, 0, 5);
  setvoxel(7, 0, 5);
  setvoxel(0, 0, 6);
  setvoxel(7, 0, 6);
  delay_ms(300);
  shift(2, -1);
  for (cnt = 0; cnt <= 7; cnt++) {
    setvoxel(cnt, 0, 2);
  }
  setvoxel(0, 0, 3);
  setvoxel(7, 0, 3);
  setvoxel(0, 0, 4);
  setvoxel(7, 0, 4);
  setvoxel(0, 0, 5);
  setvoxel(7, 0, 5);
  setvoxel(0, 0, 6);
  setvoxel(7, 0, 6);
  delay_ms(300);
  shift(2, -1);
  for (cnt = 0; cnt <= 7; cnt++) {
    setvoxel(cnt, 0, 1);
  }
  setvoxel(0, 0, 2);
  setvoxel(7, 0, 2);
  setvoxel(0, 0, 3);
  setvoxel(7, 0, 3);
  setvoxel(0, 0, 4);
  setvoxel(7, 0, 4);
  setvoxel(0, 0, 5);
  setvoxel(7, 0, 5);
  delay_ms(300);
  shift(2, -1);
  for (cnt = 0; cnt <= 7; cnt++) {
    setvoxel(cnt, 0, 0);
  }
  setvoxel(0, 0, 1);
  setvoxel(7, 0, 1);
  setvoxel(0, 0, 2);
  setvoxel(7, 0, 2);
  setvoxel(0, 0, 3);
  setvoxel(7, 0, 3);
  setvoxel(0, 0, 4);
  setvoxel(7, 0, 4);
  setvoxel(0, 0, 5);
  setvoxel(7, 0, 5);
  delay_ms(300);
  for (cnt = 0; cnt <= 7; cnt++) {
    box_wireframe(0, 0, 0, 7, cnt, 7);
    delay_ms(300);
  }
  for (cnt = 0; cnt < 7; cnt++) {
    clrplane_y(cnt);
    delay_ms(300);
  }
  for (cnt_2 = 6; cnt_2 >= 0; cnt_2--) {
    shift(3, -1);
    for (cnt = 0; cnt <= 7; cnt++) {
      setvoxel(cnt, cnt_2, 0);
    }
    for (cnt = 6; cnt > cnt_2; cnt--) {
      setvoxel(0, cnt, 0);
      setvoxel(7, cnt, 0);
    }
    delay_ms(300);
  }
  for (cnt = 0; cnt <= 6; cnt++) {
    fill(0x00);
    box_walls(0, 0, 0, 7, 7, cnt);
    delay_ms(300);
  }
  time = 500;
  for (cnt_2 = 0; cnt_2 < 5; cnt_2++) {
    time -= 75;
    for (cnt = 0; cnt <= 3; cnt++) {
      fill(0x00);
      box_walls(cnt, cnt, cnt, 7 - cnt, 7 - cnt, 7 - cnt);
      delay_ms(time);
    }
    for (cnt = 0; cnt <= 3; cnt++) {
      fill(0x00);
      box_walls(3 - cnt, 3 - cnt, 3 - cnt, 4 + cnt, 4 + cnt, 4 + cnt);
      delay_ms(time);
    }
  }
  for (cnt_2 = 0; cnt_2 < 5; cnt_2++) {
    time += 75;
    for (cnt = 0; cnt <= 3; cnt++) {
      fill(0x00);
      box_walls(cnt, cnt, cnt, 7 - cnt, 7 - cnt, 7 - cnt);
      delay_ms(time);
    }
    for (cnt = 0; cnt <= 3; cnt++) {
      fill(0x00);
      box_walls(3 - cnt, 3 - cnt, 3 - cnt, 4 + cnt, 4 + cnt, 4 + cnt);
      delay_ms(time);
    }
  }
  delay_ms(500);
}
```