user: Converte this assembly snippet into its equivalent C code:

```asm
<draw_logo_line>:
  endbr64
  sub    $0x8,%rsp
  mov    $0x1,%edi
  call   <glCallList@plt>
  movsd  D90(%rip),%xmm2
  movsd  D163(%rip),%xmm1
  movsd  D133(%rip),%xmm0
  call   <glTranslatef@plt>
  mov    D201(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  pxor   %xmm0,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_double_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_forward@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D201(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_double_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_forward@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D110(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_single_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_right@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D201(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_double_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_forward@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D201(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_double_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_forward@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D110(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_single_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_left@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D201(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_double_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_forward@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D201(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_double_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_forward@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D110(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_single_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_right@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D201(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_double_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_forward@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D201(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_double_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_forward@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D110(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_single_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_left@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D201(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_double_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_forward@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D201(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_double_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_forward@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D110(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_single_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_right@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D201(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_double_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_forward@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D201(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_double_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_forward@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  mov    D110(%rip),%rax
  movq   %rax,%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm0
  call   <glTranslatef@plt>
  mov    $0x0,%eax
  call   <draw_single_cylinder@plt>
  mov    $0x0,%eax
  call   <bend_left@plt>
  mov    $0x0,%eax
  call   <draw_elbow@plt>
  add    $0x8,%rsp
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D90
data_type: f64
name: extract_symbolic_data
arguments: data_label: D163
data_type: f32[2]
name: extract_symbolic_data
arguments: data_label: D133
data_type: f64
name: extract_symbolic_data
arguments: data_label: D201
data_type: f32[2]
name: extract_symbolic_data
arguments: data_label: D110
data_type: f32[2]

tool: D90: 4.5

tool: {"D163": [0.0,-2.1875]}

tool: D133: 5.5

tool: {"D201": [0.0,-2.4375]}

tool: {"D110": [0.0,-2.3125]}

assistant: ```c
void draw_logo_line(void) {
  glCallList(1);
  glTranslatef(5.500000, -3.500000, 4.500000);
  glTranslatef(0.0, 0.0, -7.000000);
  draw_double_cylinder();
  bend_forward();
  draw_elbow();
  glTranslatef(0.0, 0.0, -7.000000);
  draw_double_cylinder();
  bend_forward();
  draw_elbow();
  glTranslatef(0.0, 0.0, -5.000000);
  draw_single_cylinder();
  bend_right();
  draw_elbow();
  glTranslatef(0.0, 0.0, -7.000000);
  draw_double_cylinder();
  bend_forward();
  draw_elbow();
  glTranslatef(0.0, 0.0, -7.000000);
  draw_double_cylinder();
  bend_forward();
  draw_elbow();
  glTranslatef(0.0, 0.0, -5.000000);
  draw_single_cylinder();
  bend_left();
  draw_elbow();
  glTranslatef(0.0, 0.0, -7.000000);
  draw_double_cylinder();
  bend_forward();
  draw_elbow();
  glTranslatef(0.0, 0.0, -7.000000);
  draw_double_cylinder();
  bend_forward();
  draw_elbow();
  glTranslatef(0.0, 0.0, -5.000000);
  draw_single_cylinder();
  bend_right();
  draw_elbow();
  glTranslatef(0.0, 0.0, -7.000000);
  draw_double_cylinder();
  bend_forward();
  draw_elbow();
  glTranslatef(0.0, 0.0, -7.000000);
  draw_double_cylinder();
  bend_forward();
  draw_elbow();
  glTranslatef(0.0, 0.0, -5.000000);
  draw_single_cylinder();
  bend_left();
  draw_elbow();
  glTranslatef(0.0, 0.0, -7.000000);
  draw_double_cylinder();
  bend_forward();
  draw_elbow();
  glTranslatef(0.0, 0.0, -7.000000);
  draw_double_cylinder();
  bend_forward();
  draw_elbow();
  glTranslatef(0.0, 0.0, -5.000000);
  draw_single_cylinder();
  bend_right();
  draw_elbow();
  glTranslatef(0.0, 0.0, -7.000000);
  draw_double_cylinder();
  bend_forward();
  draw_elbow();
  glTranslatef(0.0, 0.0, -7.000000);
  draw_double_cylinder();
  bend_forward();
  draw_elbow();
  glTranslatef(0.0, 0.0, -5.000000);
  draw_single_cylinder();
  bend_left();
  draw_elbow();
}
```