user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<mainCastle>:
  endbr64
  sub    $0x8,%rsp
  xor    %eax,%eax
  call   <glPushMatrix@plt>
  movsd  D71(%rip),%xmm4
  movapd %xmm4,%xmm2
  movapd %xmm4,%xmm1
  movapd %xmm4,%xmm0
  call   <glColor3f@plt>
  pxor   %xmm3,%xmm3
  mov    $0xffffffff,%edi
  movsd  D115(%rip),%xmm1
  movapd %xmm3,%xmm0
  call   <glTranslatef@plt>
  mov    D57(%rip),%rax
  pxor   %xmm3,%xmm3
  mov    $0x14,%edi
  movapd %xmm3,%xmm2
  movapd %xmm3,%xmm0
  movq   %rax,%xmm1
  call   <glRotatef@plt>
  movsd  D145(%rip),%xmm0
  call   <glutSolidCube@plt>
  xor    %eax,%eax
  call   <glPopMatrix@plt>
  xor    %eax,%eax
  call   <glPushMatrix@plt>
  mov    D71(%rip),%rax
  movq   %rax,%xmm2
  movq   %rax,%xmm1
  movq   %rax,%xmm0
  call   <glColor3f@plt>
  movsd  D50(%rip),%xmm6
  mov    $0xffffffff,%edi
  mov    D57(%rip),%rax
  movapd %xmm6,%xmm1
  movq   %rax,%xmm0
  call   <glTranslatef@plt>
  mov    D57(%rip),%rax
  pxor   %xmm3,%xmm3
  mov    $0xffffffa6,%edi
  movapd %xmm3,%xmm2
  movapd %xmm3,%xmm1
  movq   %rax,%xmm0
  call   <glRotatef@plt>
  xor    %eax,%eax
  call   <gluNewQuadric@plt>
  mov    $0x20,%edx
  mov    $0x20,%esi
  movsd  D53(%rip),%xmm5
  mov    %eax,%edi
  mov    D57(%rip),%rax
  movapd %xmm5,%xmm1
  movapd %xmm5,%xmm0
  movq   %rax,%xmm2
  call   <gluCylinder@plt>
  xor    %eax,%eax
  call   <glPopMatrix@plt>
  xor    %eax,%eax
  call   <glPushMatrix@plt>
  pxor   %xmm3,%xmm3
  movsd  D165(%rip),%xmm0
  movapd %xmm3,%xmm2
  movapd %xmm3,%xmm1
  call   <glColor3f@plt>
  mov    D57(%rip),%rax
  mov    $0xffffffff,%edi
  movsd  D1(%rip),%xmm1
  movq   %rax,%xmm0
  call   <glTranslatef@plt>
  mov    D57(%rip),%rax
  pxor   %xmm3,%xmm3
  mov    $0xffffffa6,%edi
  movapd %xmm3,%xmm2
  movapd %xmm3,%xmm1
  movq   %rax,%xmm0
  call   <glRotatef@plt>
  mov    $0x10,%esi
  mov    $0x14,%edi
  movsd  D65(%rip),%xmm1
  movsd  D116(%rip),%xmm0
  call   <glutSolidCone@plt>
  xor    %eax,%eax
  call   <glPopMatrix@plt>
  xor    %eax,%eax
  call   <glPushMatrix@plt>
  mov    D71(%rip),%rax
  movq   %rax,%xmm2
  movq   %rax,%xmm1
  movq   %rax,%xmm0
  call   <glColor3f@plt>
  mov    D50(%rip),%rax
  mov    $0xffffffff,%edi
  movq   %rax,%xmm1
  mov    D57(%rip),%rax
  movq   %rax,%xmm0
  call   <glTranslatef@plt>
  mov    D57(%rip),%rax
  pxor   %xmm3,%xmm3
  mov    $0x5a,%edi
  movapd %xmm3,%xmm1
  movapd %xmm3,%xmm2
  movq   %rax,%xmm0
  call   <glRotatef@plt>
  mov    $0xc,%esi
  mov    $0x14,%edi
  mov    D53(%rip),%rax
  movq   %rax,%xmm1
  movq   %rax,%xmm0
  call   <glutSolidCone@plt>
  xor    %eax,%eax
  add    $0x8,%rsp
  jmp    1120 <glPopMatrix@plt>
```

tool_calls: name: unpack_data
arguments: tag: D71
type_guessed: f64
name: unpack_data
arguments: tag: D115
type_guessed: f64
name: unpack_data
arguments: tag: D57
type_guessed: f64
name: unpack_data
arguments: tag: D145
type_guessed: f64
name: unpack_data
arguments: tag: D50
type_guessed: f64
name: unpack_data
arguments: tag: D53
type_guessed: f64
name: unpack_data
arguments: tag: D165
type_guessed: f64
name: unpack_data
arguments: tag: D1
type_guessed: f64
name: unpack_data
arguments: tag: D65
type_guessed: f64
name: unpack_data
arguments: tag: D116
type_guessed: f64

tool: D71: 0.8

tool: D115: 1.3

tool: D57: 1

tool: D145: 1.8

tool: D50: 1.7

tool: D53: 0.5

tool: D165: 0.65

tool: D1: 2.7

tool: D65: 0.6

tool: D116: 0.7

assistant: ```c
void mainCastle() {
  int ztranslate = -1;
  glPushMatrix();
  glColor3f(0.8, 0.8, 0.8);
  glTranslatef(0, 1.3, -1);
  glRotatef(20, 0.0, 1.0, 0.0);
  glutSolidCube(1.8);
  glPopMatrix();
  glPushMatrix();
  glColor3f(0.8, 0.8, 0.8);
  glTranslatef(1.0, 1.7, ztranslate);
  glRotatef(-90., 1.0, 0.0, 0.0);
  gluCylinder(gluNewQuadric(), 0.5, 0.5, 1.0, 32, 32);
  glPopMatrix();
  glPushMatrix();
  glColor3f(0.65, 0.0, 0.0);
  glTranslatef(1.0, 2.7, ztranslate);
  glRotatef(-90., 1.0, 0.0, 0.0);
  glutSolidCone(0.70, 0.60, 20, 16);
  glPopMatrix();
  glPushMatrix();
  glColor3f(0.8, 0.8, 0.8);
  glTranslatef(1.0, 1.7, ztranslate);
  glRotatef(90, 1.0, 0.0, 0.0);
  glutSolidCone(0.5, 0.5, 20, 12);
  glPopMatrix();
}
```