user: 请从给定的汇编指令推导出C源代码：

```asm
<InitMaterials>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    D13(%rip),%rax
  mov    (%rax),%ecx
  mov    D220(%rip),%rax
  mov    (%rax),%eax
  lea    D48(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <glLightfv@plt>
  mov    D326(%rip),%rax
  mov    (%rax),%ecx
  mov    D220(%rip),%rax
  mov    (%rax),%eax
  lea    D228(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <glLightfv@plt>
  mov    D43(%rip),%rax
  mov    (%rax),%ecx
  mov    D220(%rip),%rax
  mov    (%rax),%eax
  lea    D269(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <glLightfv@plt>
  mov    D220(%rip),%rax
  mov    (%rax),%eax
  mov    %eax,%edi
  call   <glEnable@plt>
  mov    D13(%rip),%rax
  mov    (%rax),%ecx
  mov    D96(%rip),%rax
  mov    (%rax),%eax
  lea    D48(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <glLightfv@plt>
  mov    D326(%rip),%rax
  mov    (%rax),%ecx
  mov    D96(%rip),%rax
  mov    (%rax),%eax
  lea    D228(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <glLightfv@plt>
  mov    D43(%rip),%rax
  mov    (%rax),%ecx
  mov    D96(%rip),%rax
  mov    (%rax),%eax
  lea    D162(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <glLightfv@plt>
  mov    D96(%rip),%rax
  mov    (%rax),%eax
  mov    %eax,%edi
  call   <glEnable@plt>
  mov    D179(%rip),%rax
  mov    (%rax),%eax
  lea    D202(%rip),%rdx
  mov    %rdx,%rsi
  mov    %eax,%edi
  call   <glLightModelfv@plt>
  mov    D59(%rip),%rax
  mov    (%rax),%eax
  lea    D82(%rip),%rdx
  mov    %rdx,%rsi
  mov    %eax,%edi
  call   <glLightModelfv@plt>
  mov    D46(%rip),%rax
  mov    (%rax),%eax
  mov    %eax,%edi
  call   <glEnable@plt>
  mov    D254(%rip),%rax
  mov    (%rax),%ecx
  mov    D18(%rip),%rax
  mov    (%rax),%eax
  lea    D289(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <glMaterialfv@plt>
  mov    D209(%rip),%rax
  mov    (%rax),%ecx
  mov    D18(%rip),%rax
  mov    (%rax),%eax
  lea    D248(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <glMaterialfv@plt>
  mov    D326(%rip),%rax
  mov    (%rax),%ecx
  mov    D18(%rip),%rax
  mov    (%rax),%eax
  lea    D315(%rip),%rdx
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <glMaterialfv@plt>
  nop
  pop    %rbp
  ret
```

assistant: ```c
void InitMaterials(void) {
  static float ambient[] = {0.1, 0.1, 0.1, 1.0};
  static float diffuse[] = {0.5, 1.0, 1.0, 1.0};
  static float position0[] = {0.0, 0.0, 20.0, 0.0};
  static float position1[] = {0.0, 0.0, -20.0, 0.0};
  static float front_mat_shininess[] = {60.0};
  static float front_mat_specular[] = {0.2, 0.2, 0.2, 1.0};
  static float front_mat_diffuse[] = {0.5, 0.28, 0.38, 1.0};
  static float lmodel_ambient[] = {1.0, 1.0, 1.0, 1.0};
  static float lmodel_twoside[] = {GL_FALSE};
  glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
  glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
  glLightfv(GL_LIGHT0, GL_POSITION, position0);
  glEnable(GL_LIGHT0);
  glLightfv(GL_LIGHT1, GL_AMBIENT, ambient);
  glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
  glLightfv(GL_LIGHT1, GL_POSITION, position1);
  glEnable(GL_LIGHT1);
  glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
  glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
  glEnable(GL_LIGHTING);
  glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_mat_shininess);
  glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_mat_specular);
  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, front_mat_diffuse);
}
```