user: 提供的汇编代码用C语言表示会是什么样子：

```asm
<drawBox>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x90,%rsp
  mov    %edi,-0x84(%rbp)
  mov    %esi,-0x88(%rbp)
  mov    %edx,-0x8c(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    -0x84(%rbp),%eax
  neg    %eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%eax
  mov    %eax,-0x70(%rbp)
  mov    -0x84(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,-0x1c(%rbp)
  mov    -0x1c(%rbp),%eax
  mov    %eax,-0x28(%rbp)
  mov    -0x28(%rbp),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x88(%rbp),%eax
  neg    %eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%eax
  mov    %eax,-0x6c(%rbp)
  mov    -0x88(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,-0x18(%rbp)
  mov    -0x18(%rbp),%eax
  mov    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x8c(%rbp),%eax
  neg    %eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,-0x14(%rbp)
  mov    -0x14(%rbp),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%eax
  mov    %eax,-0x68(%rbp)
  mov    -0x8c(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,-0x20(%rbp)
  mov    -0x20(%rbp),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%eax
  mov    %eax,-0x5c(%rbp)
  movl   $0x0,-0x74(%rbp)
  jmp    L6
L0:
  mov    D33(%rip),%rax
  mov    (%rax),%eax
  mov    %eax,%edi
  call   <glBegin@plt>
  mov    -0x74(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  lea    D7(%rip),%rdx
  add    %rdx,%rax
  mov    %rax,%rdi
  call   <glNormal3fv@plt>
  mov    -0x74(%rbp),%eax
  cltq
  shl    $0x4,%rax
  mov    %rax,%rdx
  lea    D20(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  lea    -0x70(%rbp),%rcx
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rcx,%rax
  mov    %rax,%rdi
  call   <glVertex3fv@plt>
  mov    -0x74(%rbp),%eax
  cltq
  shl    $0x4,%rax
  mov    %rax,%rdx
  lea    D53(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  lea    -0x70(%rbp),%rcx
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rcx,%rax
  mov    %rax,%rdi
  call   <glVertex3fv@plt>
  mov    -0x74(%rbp),%eax
  cltq
  shl    $0x4,%rax
  mov    %rax,%rdx
  lea    D26(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  lea    -0x70(%rbp),%rcx
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rcx,%rax
  mov    %rax,%rdi
  call   <glVertex3fv@plt>
  mov    -0x74(%rbp),%eax
  cltq
  shl    $0x4,%rax
  mov    %rax,%rdx
  lea    D40(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  lea    -0x70(%rbp),%rcx
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rcx,%rax
  mov    %rax,%rdi
  call   <glVertex3fv@plt>
  mov    $0x0,%eax
  call   <glEnd@plt>
  addl   $0x1,-0x74(%rbp)
L6:
  cmpl   $0x5,-0x74(%rbp)
  jle    L0
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L25
  call   <__stack_chk_fail@plt>
L25:
  leave
  ret
```

assistant: ```c
void drawBox(GLfloat xsize, GLfloat ysize, GLfloat zsize) {
  static GLfloat n[6][3] = {{-1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {1.0, 0.0, 0.0}, {0.0, -1.0, 0.0}, {0.0, 0.0, 1.0}, {0.0, 0.0, -1.0}};
  static GLint faces[6][4] = {{0, 1, 2, 3}, {3, 2, 6, 7}, {7, 6, 5, 4}, {4, 5, 1, 0}, {5, 6, 2, 1}, {7, 4, 0, 3}};
  GLfloat v[8][3];
  GLint i;
  v[0][0] = v[1][0] = v[2][0] = v[3][0] = -xsize / 2;
  v[4][0] = v[5][0] = v[6][0] = v[7][0] = xsize / 2;
  v[0][1] = v[1][1] = v[4][1] = v[5][1] = -ysize / 2;
  v[2][1] = v[3][1] = v[6][1] = v[7][1] = ysize / 2;
  v[0][2] = v[3][2] = v[4][2] = v[7][2] = -zsize / 2;
  v[1][2] = v[2][2] = v[5][2] = v[6][2] = zsize / 2;
  for (i = 0; i < 6; i++) {
    glBegin(GL_QUADS);
    glNormal3fv(&n[i][0]);
    glVertex3fv(&v[faces[i][0]][0]);
    glVertex3fv(&v[faces[i][1]][0]);
    glVertex3fv(&v[faces[i][2]][0]);
    glVertex3fv(&v[faces[i][3]][0]);
    glEnd();
  }
}
```