user: 下面的汇编指令对应的C源代码是什么:

```asm
<makeTexture>:
  endbr64
  push   %r12
  mov    %rdi,%r9
  mov    $0x6f,%r8d
  mov    $0xaa,%edx
  push   %rbp
  mov    $0x8f,%edi
  mov    $0x1f,%esi
  push   %rbx
  sub    $0xc10,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0xc08(%rsp)
  xor    %eax,%eax
  mov    %rsp,%rbp
  lea    0xc00(%rsp),%r12
  mov    %rbp,%rax
  nopl   0x0(%rax,%rax,1)
L15:
  mov    (%r9),%rcx
  mov    %edx,%ebx
  mov    %edx,%r11d
  mov    %edx,%r10d
  cmpb   $0x78,(%rcx)
  cmove  %r8d,%ebx
  cmove  %edi,%r11d
  cmove  %esi,%r10d
  mov    %ebx,(%rax)
  mov    %edx,%ebx
  mov    %r11d,0x4(%rax)
  mov    %edx,%r11d
  mov    %r10d,0x8(%rax)
  mov    %edx,%r10d
  cmpb   $0x78,0x1(%rcx)
  cmove  %r8d,%ebx
  cmove  %edi,%r11d
  cmove  %esi,%r10d
  mov    %ebx,0xc(%rax)
  mov    %edx,%ebx
  mov    %r11d,0x10(%rax)
  mov    %edx,%r11d
  mov    %r10d,0x14(%rax)
  mov    %edx,%r10d
  cmpb   $0x78,0x2(%rcx)
  cmove  %r8d,%ebx
  cmove  %edi,%r11d
  cmove  %esi,%r10d
  mov    %ebx,0x18(%rax)
  mov    %edx,%ebx
  mov    %r11d,0x1c(%rax)
  mov    %edx,%r11d
  mov    %r10d,0x20(%rax)
  mov    %edx,%r10d
  cmpb   $0x78,0x3(%rcx)
  cmove  %r8d,%ebx
  cmove  %edi,%r11d
  cmove  %esi,%r10d
  mov    %ebx,0x24(%rax)
  mov    %edx,%ebx
  mov    %r11d,0x28(%rax)
  mov    %edx,%r11d
  mov    %r10d,0x2c(%rax)
  mov    %edx,%r10d
  cmpb   $0x78,0x4(%rcx)
  cmove  %r8d,%ebx
  cmove  %edi,%r11d
  cmove  %esi,%r10d
  mov    %ebx,0x30(%rax)
  mov    %edx,%ebx
  mov    %r11d,0x34(%rax)
  mov    %edx,%r11d
  mov    %r10d,0x38(%rax)
  mov    %edx,%r10d
  cmpb   $0x78,0x5(%rcx)
  cmove  %r8d,%ebx
  cmove  %edi,%r11d
  cmove  %esi,%r10d
  mov    %ebx,0x3c(%rax)
  mov    %edx,%ebx
  mov    %r11d,0x40(%rax)
  mov    %edx,%r11d
  mov    %r10d,0x44(%rax)
  mov    %edx,%r10d
  cmpb   $0x78,0x6(%rcx)
  cmove  %r8d,%ebx
  cmove  %edi,%r11d
  cmove  %esi,%r10d
  mov    %ebx,0x48(%rax)
  mov    %edx,%ebx
  mov    %r11d,0x4c(%rax)
  mov    %edx,%r11d
  mov    %r10d,0x50(%rax)
  mov    %edx,%r10d
  cmpb   $0x78,0x7(%rcx)
  cmove  %r8d,%ebx
  cmove  %edi,%r11d
  cmove  %esi,%r10d
  mov    %ebx,0x54(%rax)
  mov    %edx,%ebx
  mov    %r11d,0x58(%rax)
  mov    %edx,%r11d
  mov    %r10d,0x5c(%rax)
  cmpb   $0x78,0x8(%rcx)
  mov    %edx,%r10d
  cmove  %r8d,%ebx
  cmove  %edi,%r11d
  cmove  %esi,%r10d
  mov    %ebx,0x60(%rax)
  mov    %edx,%ebx
  mov    %r11d,0x64(%rax)
  mov    %edx,%r11d
  mov    %r10d,0x68(%rax)
  mov    %edx,%r10d
  cmpb   $0x78,0x9(%rcx)
  cmove  %r8d,%ebx
  cmove  %edi,%r11d
  cmove  %esi,%r10d
  mov    %ebx,0x6c(%rax)
  mov    %edx,%ebx
  mov    %r11d,0x70(%rax)
  mov    %edx,%r11d
  mov    %r10d,0x74(%rax)
  mov    %edx,%r10d
  cmpb   $0x78,0xa(%rcx)
  cmove  %r8d,%ebx
  cmove  %edi,%r11d
  cmove  %esi,%r10d
  mov    %ebx,0x78(%rax)
  mov    %edx,%ebx
  mov    %r11d,0x7c(%rax)
  mov    %edx,%r11d
  mov    %r10d,0x80(%rax)
  mov    %edx,%r10d
  cmpb   $0x78,0xb(%rcx)
  cmove  %r8d,%ebx
  cmove  %edi,%r11d
  cmove  %esi,%r10d
  mov    %ebx,0x84(%rax)
  mov    %edx,%ebx
  mov    %r11d,0x88(%rax)
  mov    %edx,%r11d
  mov    %r10d,0x8c(%rax)
  mov    %edx,%r10d
  cmpb   $0x78,0xc(%rcx)
  cmove  %r8d,%ebx
  cmove  %edi,%r11d
  cmove  %esi,%r10d
  mov    %ebx,0x90(%rax)
  mov    %edx,%ebx
  mov    %r11d,0x94(%rax)
  mov    %edx,%r11d
  mov    %r10d,0x98(%rax)
  mov    %edx,%r10d
  cmpb   $0x78,0xd(%rcx)
  cmove  %r8d,%ebx
  cmove  %edi,%r11d
  cmove  %esi,%r10d
  mov    %ebx,0x9c(%rax)
  mov    %edx,%ebx
  mov    %r11d,0xa0(%rax)
  mov    %edx,%r11d
  mov    %r10d,0xa4(%rax)
  mov    %edx,%r10d
  cmpb   $0x78,0xe(%rcx)
  cmove  %r8d,%ebx
  cmove  %edi,%r11d
  cmove  %esi,%r10d
  mov    %ebx,0xa8(%rax)
  mov    %r11d,0xac(%rax)
  mov    %r10d,0xb0(%rax)
  cmpb   $0x78,0xf(%rcx)
  je     L26
  movl   $0xaa,0xb4(%rax)
  add    $0xc0,%rax
  add    $0x8,%r9
  movl   $0xaa,-0x8(%rax)
  movl   $0xaa,-0x4(%rax)
  cmp    %r12,%rax
  jne    L15
L30:
  mov    D39(%rip),%rax
  mov    $0x1,%esi
  mov    (%rax),%edi
  call   <glPixelStorei@plt>
  mov    D55(%rip),%rax
  mov    D31(%rip),%rbx
  mov    (%rax),%edx
  mov    D21(%rip),%rax
  mov    (%rbx),%edi
  mov    (%rax),%esi
  call   <glTexParameteri@plt>
  sub    $0x8,%rsp
  xor    %r9d,%r9d
  xor    %esi,%esi
  mov    D28(%rip),%rax
  push   %rbp
  mov    $0x10,%ecx
  mov    $0x3,%edx
  mov    $0x10,%r8d
  mov    (%rax),%eax
  push   %rax
  mov    D33(%rip),%rax
  mov    (%rax),%eax
  push   %rax
  mov    (%rbx),%edi
  call   <glTexImage2D@plt>
  add    $0x20,%rsp
  mov    0xc08(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L3
  add    $0xc10,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
  nopl   (%rax)
L26:
  movl   $0x6f,0xb4(%rax)
  add    $0xc0,%rax
  add    $0x8,%r9
  movl   $0x8f,-0x8(%rax)
  movl   $0x1f,-0x4(%rax)
  cmp    %r12,%rax
  jne    L15
  jmp    L30
L3:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
void makeTexture(char *pattern[]) {
  GLubyte floorTexture[16][16][3];
  GLubyte *loc;
  int s, t;
  loc = (GLubyte *)floorTexture;
  for (t = 0; t < 16; t++) {
    for (s = 0; s < 16; s++) {
      if (pattern[t][s] == 'x') {
        loc[0] = 0x6f;
        loc[1] = 0x8f;
        loc[2] = 0x1f;
      } else {
        loc[0] = 0xaa;
        loc[1] = 0xaa;
        loc[2] = 0xaa;
      }
      loc += 3;
    }
  }
  glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  glTexImage2D(GL_TEXTURE_2D, 0, 3, 16, 16, 0, GL_RGB, GL_UNSIGNED_BYTE, floorTexture);
}
```