user: Demonstrate the C code that generates the assembly output below:

```asm
<player1_draw>:
  endbr64
  mov    %rdi,%rax
  cmp    $0x9,%edx
  ja     L0
  lea    D2(%rip),%rcx
  mov    %edx,%edx
  movslq (%rcx,%rdx,4),%rdx
  add    %rcx,%rdx
  notrack jmp *%rdx
  nopl   0x0(%rax,%rax,1)
  mov    0x278(%rdi),%rdx
  movb   $0x1,0x3d(%rdx)
  mov    0x280(%rdi),%rdx
  movb   $0x1,0x3e(%rdx)
  mov    0x270(%rdi),%rdx
  movb   $0x1,0x3e(%rdx)
  mov    0x280(%rdi),%rdx
  movb   $0x1,0x3c(%rdx)
  mov    0x270(%rdi),%rdx
  movb   $0x1,0x3c(%rdx)
  mov    0x288(%rdi),%rdx
  movb   $0x1,0x3f(%rdx)
  mov    0x268(%rdi),%rdx
  movb   $0x1,0x3f(%rdx)
  mov    0x288(%rdi),%rdx
  movb   $0x1,0x3b(%rdx)
  mov    0x268(%rdi),%rdx
  movb   $0x1,0x3b(%rdx)
  mov    0x290(%rdi),%rdx
  movb   $0x1,0x40(%rdx)
  mov    0x260(%rdi),%rdx
  movb   $0x1,0x40(%rdx)
  mov    0x290(%rdi),%rdx
  movb   $0x1,0x3a(%rdx)
  mov    0x260(%rdi),%rdx
  movb   $0x1,0x3a(%rdx)
  mov    0x298(%rdi),%rdx
  movb   $0x1,0x41(%rdx)
  mov    0x258(%rdi),%rdx
  movb   $0x1,0x41(%rdx)
  mov    0x298(%rdi),%rdx
  movb   $0x1,0x39(%rdx)
  mov    0x258(%rdi),%rdx
  movb   $0x1,0x39(%rdx)
L0:
  ret
  nopl   0x0(%rax)
  mov    0xa0(%rdi),%rdx
  movb   $0x1,0xe(%rdx)
  mov    0xa8(%rdi),%rdx
  movb   $0x1,0xf(%rdx)
  mov    0x98(%rdi),%rdx
  movb   $0x1,0xf(%rdx)
  mov    0xa8(%rdi),%rdx
  movb   $0x1,0xd(%rdx)
  mov    0x98(%rdi),%rdx
  movb   $0x1,0xd(%rdx)
  mov    0xb0(%rdi),%rdx
  movb   $0x1,0x10(%rdx)
  mov    0x90(%rdi),%rdx
  movb   $0x1,0x10(%rdx)
  mov    0xb0(%rdi),%rdx
  movb   $0x1,0xc(%rdx)
  mov    0x90(%rdi),%rdx
  movb   $0x1,0xc(%rdx)
  mov    0xb8(%rdi),%rdx
  movb   $0x1,0x11(%rdx)
  mov    0x88(%rdi),%rdx
  movb   $0x1,0x11(%rdx)
  mov    0xb8(%rdi),%rdx
  movb   $0x1,0xb(%rdx)
  mov    0x88(%rdi),%rdx
  movb   $0x1,0xb(%rdx)
  mov    0xc0(%rdi),%rdx
  movb   $0x1,0x12(%rdx)
  mov    0x80(%rdi),%rdx
  movb   $0x1,0x12(%rdx)
  mov    0xc0(%rdi),%rdx
  movb   $0x1,0xa(%rdx)
  mov    0x80(%rdi),%rdx
  movb   $0x1,0xa(%rdx)
  ret
  nopl   0x0(%rax)
  mov    0x190(%rdi),%rdx
  movb   $0x1,0xe(%rdx)
  mov    0x198(%rdi),%rdx
  movb   $0x1,0xf(%rdx)
  mov    0x188(%rdi),%rdx
  movb   $0x1,0xf(%rdx)
  mov    0x198(%rdi),%rdx
  movb   $0x1,0xd(%rdx)
  mov    0x188(%rdi),%rdx
  movb   $0x1,0xd(%rdx)
  mov    0x1a0(%rdi),%rdx
  movb   $0x1,0x10(%rdx)
  mov    0x180(%rdi),%rdx
  movb   $0x1,0x10(%rdx)
  mov    0x1a0(%rdi),%rdx
  movb   $0x1,0xc(%rdx)
  mov    0x180(%rdi),%rdx
  movb   $0x1,0xc(%rdx)
  mov    0x1a8(%rdi),%rdx
  movb   $0x1,0x11(%rdx)
  mov    0x178(%rdi),%rdx
  movb   $0x1,0x11(%rdx)
  mov    0x1a8(%rdi),%rdx
  movb   $0x1,0xb(%rdx)
  mov    0x178(%rdi),%rdx
  movb   $0x1,0xb(%rdx)
  mov    0x1b0(%rdi),%rdx
  movb   $0x1,0x12(%rdx)
  mov    0x170(%rdi),%rdx
  movb   $0x1,0x12(%rdx)
  mov    0x1b0(%rdi),%rdx
  movb   $0x1,0xa(%rdx)
  mov    0x170(%rdi),%rdx
  movb   $0x1,0xa(%rdx)
  ret
  nopl   0x0(%rax)
  mov    0x278(%rdi),%rdx
  movb   $0x1,0xe(%rdx)
  mov    0x280(%rdi),%rdx
  movb   $0x1,0xf(%rdx)
  mov    0x270(%rdi),%rdx
  movb   $0x1,0xf(%rdx)
  mov    0x280(%rdi),%rdx
  movb   $0x1,0xd(%rdx)
  mov    0x270(%rdi),%rdx
  movb   $0x1,0xd(%rdx)
  mov    0x288(%rdi),%rdx
  movb   $0x1,0x10(%rdx)
  mov    0x268(%rdi),%rdx
  movb   $0x1,0x10(%rdx)
  mov    0x288(%rdi),%rdx
  movb   $0x1,0xc(%rdx)
  mov    0x268(%rdi),%rdx
  movb   $0x1,0xc(%rdx)
  mov    0x290(%rdi),%rdx
  movb   $0x1,0x11(%rdx)
  mov    0x260(%rdi),%rdx
  movb   $0x1,0x11(%rdx)
  mov    0x290(%rdi),%rdx
  movb   $0x1,0xb(%rdx)
  mov    0x260(%rdi),%rdx
  movb   $0x1,0xb(%rdx)
  mov    0x298(%rdi),%rdx
  movb   $0x1,0x12(%rdx)
  mov    0x258(%rdi),%rdx
  movb   $0x1,0x12(%rdx)
  mov    0x298(%rdi),%rdx
  movb   $0x1,0xa(%rdx)
  mov    0x258(%rdi),%rdx
  movb   $0x1,0xa(%rdx)
  ret
  nopl   0x0(%rax)
  mov    0xa0(%rdi),%rdx
  movb   $0x1,0x26(%rdx)
  mov    0xa8(%rdi),%rdx
  movb   $0x1,0x27(%rdx)
  mov    0x98(%rdi),%rdx
  movb   $0x1,0x27(%rdx)
  mov    0xa8(%rdi),%rdx
  movb   $0x1,0x25(%rdx)
  mov    0x98(%rdi),%rdx
  movb   $0x1,0x25(%rdx)
  mov    0xb0(%rdi),%rdx
  movb   $0x1,0x28(%rdx)
  mov    0x90(%rdi),%rdx
  movb   $0x1,0x28(%rdx)
  mov    0xb0(%rdi),%rdx
  movb   $0x1,0x24(%rdx)
  mov    0x90(%rdi),%rdx
  movb   $0x1,0x24(%rdx)
  mov    0xb8(%rdi),%rdx
  movb   $0x1,0x29(%rdx)
  mov    0x88(%rdi),%rdx
  movb   $0x1,0x29(%rdx)
  mov    0xb8(%rdi),%rdx
  movb   $0x1,0x23(%rdx)
  mov    0x88(%rdi),%rdx
  movb   $0x1,0x23(%rdx)
  mov    0xc0(%rdi),%rdx
  movb   $0x1,0x2a(%rdx)
  mov    0x80(%rdi),%rdx
  movb   $0x1,0x2a(%rdx)
  mov    0xc0(%rdi),%rdx
  movb   $0x1,0x22(%rdx)
  mov    0x80(%rdi),%rdx
  movb   $0x1,0x22(%rdx)
  ret
  nopl   0x0(%rax)
  mov    0x190(%rdi),%rdx
  movb   $0x1,0x26(%rdx)
  mov    0x198(%rdi),%rdx
  movb   $0x1,0x27(%rdx)
  mov    0x188(%rdi),%rdx
  movb   $0x1,0x27(%rdx)
  mov    0x198(%rdi),%rdx
  movb   $0x1,0x25(%rdx)
  mov    0x188(%rdi),%rdx
  movb   $0x1,0x25(%rdx)
  mov    0x1a0(%rdi),%rdx
  movb   $0x1,0x28(%rdx)
  mov    0x180(%rdi),%rdx
  movb   $0x1,0x28(%rdx)
  mov    0x1a0(%rdi),%rdx
  movb   $0x1,0x24(%rdx)
  mov    0x180(%rdi),%rdx
  movb   $0x1,0x24(%rdx)
  mov    0x1a8(%rdi),%rdx
  movb   $0x1,0x29(%rdx)
  mov    0x178(%rdi),%rdx
  movb   $0x1,0x29(%rdx)
  mov    0x1a8(%rdi),%rdx
  movb   $0x1,0x23(%rdx)
  mov    0x178(%rdi),%rdx
  movb   $0x1,0x23(%rdx)
  mov    0x1b0(%rdi),%rdx
  movb   $0x1,0x2a(%rdx)
  mov    0x170(%rdi),%rdx
  movb   $0x1,0x2a(%rdx)
  mov    0x1b0(%rdi),%rdx
  movb   $0x1,0x22(%rdx)
  mov    0x170(%rdi),%rdx
  movb   $0x1,0x22(%rdx)
  ret
  nopl   0x0(%rax)
  mov    0x278(%rdi),%rdx
  movb   $0x1,0x26(%rdx)
  mov    0x280(%rdi),%rdx
  movb   $0x1,0x27(%rdx)
  mov    0x270(%rdi),%rdx
  movb   $0x1,0x27(%rdx)
  mov    0x280(%rdi),%rdx
  movb   $0x1,0x25(%rdx)
  mov    0x270(%rdi),%rdx
  movb   $0x1,0x25(%rdx)
  mov    0x288(%rdi),%rdx
  movb   $0x1,0x28(%rdx)
  mov    0x268(%rdi),%rdx
  movb   $0x1,0x28(%rdx)
  mov    0x288(%rdi),%rdx
  movb   $0x1,0x24(%rdx)
  mov    0x268(%rdi),%rdx
  movb   $0x1,0x24(%rdx)
  mov    0x290(%rdi),%rdx
  movb   $0x1,0x29(%rdx)
  mov    0x260(%rdi),%rdx
  movb   $0x1,0x29(%rdx)
  mov    0x290(%rdi),%rdx
  movb   $0x1,0x23(%rdx)
  mov    0x260(%rdi),%rdx
  movb   $0x1,0x23(%rdx)
  mov    0x298(%rdi),%rdx
  movb   $0x1,0x2a(%rdx)
  mov    0x258(%rdi),%rdx
  movb   $0x1,0x2a(%rdx)
  mov    0x298(%rdi),%rdx
  movb   $0x1,0x22(%rdx)
  mov    0x258(%rdi),%rdx
  movb   $0x1,0x22(%rdx)
  ret
  nopl   0x0(%rax)
  mov    0xa0(%rdi),%rdx
  movb   $0x1,0x3d(%rdx)
  mov    0xa8(%rdi),%rdx
  movb   $0x1,0x3e(%rdx)
  mov    0x98(%rdi),%rdx
  movb   $0x1,0x3e(%rdx)
  mov    0xa8(%rdi),%rdx
  movb   $0x1,0x3c(%rdx)
  mov    0x98(%rdi),%rdx
  movb   $0x1,0x3c(%rdx)
  mov    0xb0(%rdi),%rdx
  movb   $0x1,0x3f(%rdx)
  mov    0x90(%rdi),%rdx
  movb   $0x1,0x3f(%rdx)
  mov    0xb0(%rdi),%rdx
  movb   $0x1,0x3b(%rdx)
  mov    0x90(%rdi),%rdx
  movb   $0x1,0x3b(%rdx)
  mov    0xb8(%rdi),%rdx
  movb   $0x1,0x40(%rdx)
  mov    0x88(%rdi),%rdx
  movb   $0x1,0x40(%rdx)
  mov    0xb8(%rdi),%rdx
  movb   $0x1,0x3a(%rdx)
  mov    0x88(%rdi),%rdx
  movb   $0x1,0x3a(%rdx)
  mov    0xc0(%rdi),%rdx
  movb   $0x1,0x41(%rdx)
  mov    0x80(%rdi),%rdx
  movb   $0x1,0x41(%rdx)
  mov    0xc0(%rdi),%rdx
  movb   $0x1,0x39(%rdx)
  mov    0x80(%rdi),%rdx
  movb   $0x1,0x39(%rdx)
  ret
  nopl   0x0(%rax)
  mov    0x190(%rdi),%rdx
  movb   $0x1,0x3d(%rdx)
  mov    0x198(%rdi),%rdx
  movb   $0x1,0x3e(%rdx)
  mov    0x188(%rdi),%rdx
  movb   $0x1,0x3e(%rdx)
  mov    0x198(%rdi),%rdx
  movb   $0x1,0x3c(%rdx)
  mov    0x188(%rdi),%rdx
  movb   $0x1,0x3c(%rdx)
  mov    0x1a0(%rdi),%rdx
  movb   $0x1,0x3f(%rdx)
  mov    0x180(%rdi),%rdx
  movb   $0x1,0x3f(%rdx)
  mov    0x1a0(%rdi),%rdx
  movb   $0x1,0x3b(%rdx)
  mov    0x180(%rdi),%rdx
  movb   $0x1,0x3b(%rdx)
  mov    0x1a8(%rdi),%rdx
  movb   $0x1,0x40(%rdx)
  mov    0x178(%rdi),%rdx
  movb   $0x1,0x40(%rdx)
  mov    0x1a8(%rdi),%rdx
  movb   $0x1,0x3a(%rdx)
  mov    0x178(%rdi),%rdx
  movb   $0x1,0x3a(%rdx)
  mov    0x1b0(%rdi),%rdx
  movb   $0x1,0x41(%rdx)
  mov    0x170(%rdi),%rdx
  movb   $0x1,0x41(%rdx)
  mov    0x1b0(%rdi),%rdx
  movb   $0x1,0x39(%rdx)
  mov    0x170(%rdi),%rdx
  movb   $0x1,0x39(%rdx)
  ret
```

assistant: ```c
unsigned char **player1_draw(unsigned char **a, struct game_position_t *game_positions, int player1_move, int rows, int cols) {
  int i;
  if (player1_move == 1) {
    a[20][14] = 1;
    for (i = 1; i < 5; i++) {
      a[20 + i][14 + i] = 1;
      a[20 - i][14 + i] = 1;
      a[20 + i][14 - i] = 1;
      a[20 - i][14 - i] = 1;
    }
  } else if (player1_move == 2) {
    a[50][14] = 1;
    for (i = 1; i < 5; i++) {
      a[50 + i][14 + i] = 1;
      a[50 - i][14 + i] = 1;
      a[50 + i][14 - i] = 1;
      a[50 - i][14 - i] = 1;
    }
  } else if (player1_move == 3) {
    a[79][14] = 1;
    for (i = 1; i < 5; i++) {
      a[79 + i][14 + i] = 1;
      a[79 - i][14 + i] = 1;
      a[79 + i][14 - i] = 1;
      a[79 - i][14 - i] = 1;
    }
  } else if (player1_move == 4) {
    a[20][38] = 1;
    for (i = 1; i < 5; i++) {
      a[20 + i][38 + i] = 1;
      a[20 - i][38 + i] = 1;
      a[20 + i][38 - i] = 1;
      a[20 - i][38 - i] = 1;
    }
  } else if (player1_move == 5) {
    a[50][38] = 1;
    for (i = 1; i < 5; i++) {
      a[50 + i][38 + i] = 1;
      a[50 - i][38 + i] = 1;
      a[50 + i][38 - i] = 1;
      a[50 - i][38 - i] = 1;
    }
  } else if (player1_move == 6) {
    a[79][38] = 1;
    for (i = 1; i < 5; i++) {
      a[79 + i][38 + i] = 1;
      a[79 - i][38 + i] = 1;
      a[79 + i][38 - i] = 1;
      a[79 - i][38 - i] = 1;
    }
  } else if (player1_move == 7) {
    a[20][61] = 1;
    for (i = 1; i < 5; i++) {
      a[20 + i][61 + i] = 1;
      a[20 - i][61 + i] = 1;
      a[20 + i][61 - i] = 1;
      a[20 - i][61 - i] = 1;
    }
  } else if (player1_move == 8) {
    a[50][61] = 1;
    for (i = 1; i < 5; i++) {
      a[50 + i][61 + i] = 1;
      a[50 - i][61 + i] = 1;
      a[50 + i][61 - i] = 1;
      a[50 - i][61 - i] = 1;
    }
  } else if (player1_move == 9) {
    a[79][61] = 1;
    for (i = 1; i < 5; i++) {
      a[79 + i][61 + i] = 1;
      a[79 - i][61 + i] = 1;
      a[79 + i][61 - i] = 1;
      a[79 - i][61 - i] = 1;
    }
  }
  return a;
}
```