user: Translate the below assembly code into C programming language:

```asm
<init_transform_map>:
  endbr64
  test   %esi,%esi
  jle    L65
  test   %edi,%edi
  jle    L65
  mov    %esi,%r8d
  mov    %edi,%eax
  push   %r14
  mov    %edi,%r9d
  shr    $0x2,%eax
  movd   %r8d,%xmm7
  push   %r13
  mov    %rdx,%r10
  lea    -0x1(%rax),%r11d
  pshufd $0x0,%xmm7,%xmm4
  push   %r12
  mov    %rdx,%rcx
  push   %rbp
  add    $0x1,%r11
  movdqa %xmm4,%xmm5
  lea    -0x1(%rdi),%ebp
  push   %rbx
  movdqa D19(%rip),%xmm6
  movslq %edi,%rbx
  and    $0xfffffffc,%r9d
  shl    $0x2,%rbx
  xor    %esi,%esi
  xor    %edx,%edx
  shl    $0x4,%r11
  movdqa D29(%rip),%xmm9
  psrlq  $0x20,%xmm5
  pcmpeqd %xmm8,%xmm8
  nopl   0x0(%rax)
L92:
  cmp    $0x2,%ebp
  jbe    L10
  movd   %edx,%xmm7
  movdqa D23(%rip),%xmm2
  lea    (%r11,%rcx,1),%r12
  mov    %rcx,%rax
  pshufd $0x0,%xmm7,%xmm3
  pxor   %xmm7,%xmm7
  nopl   (%rax)
L94:
  movdqa %xmm2,%xmm0
  add    $0x10,%rax
  paddd  %xmm9,%xmm2
  movdqa %xmm0,%xmm11
  movdqa %xmm0,%xmm1
  movdqa %xmm0,%xmm10
  psrlq  $0x20,%xmm11
  pmuludq %xmm4,%xmm1
  paddd  %xmm6,%xmm0
  pmuludq %xmm5,%xmm11
  pand   %xmm6,%xmm10
  pcmpeqd %xmm7,%xmm10
  pshufd $0x8,%xmm1,%xmm1
  pshufd $0x8,%xmm11,%xmm11
  punpckldq %xmm11,%xmm1
  movdqa %xmm0,%xmm11
  psrlq  $0x20,%xmm0
  pmuludq %xmm4,%xmm11
  paddd  %xmm3,%xmm1
  pmuludq %xmm5,%xmm0
  pshufd $0x8,%xmm11,%xmm11
  pshufd $0x8,%xmm0,%xmm0
  punpckldq %xmm0,%xmm11
  movdqa %xmm11,%xmm0
  paddd  %xmm8,%xmm0
  psubd  %xmm3,%xmm0
  pand   %xmm10,%xmm0
  pandn  %xmm1,%xmm10
  por    %xmm0,%xmm10
  movups %xmm10,-0x10(%rax)
  cmp    %rax,%r12
  jne    L94
  cmp    %r9d,%edi
  je     L60
  lea    0x1(%r9),%eax
  mov    %r9d,%r12d
L12:
  mov    %r8d,%r13d
  add    %esi,%r12d
  imul   %eax,%r13d
  movslq %r12d,%r12
  sub    $0x1,%r13d
  sub    %edx,%r13d
  mov    %r13d,(%r10,%r12,4)
  cmp    %eax,%edi
  jle    L60
  lea    0x1(%rax),%r12d
  mov    %r8d,%r13d
  test   $0x1,%al
  jne    L23
  imul   %r12d,%r13d
  sub    $0x1,%r13d
  sub    %edx,%r13d
L75:
  lea    (%rsi,%rax,1),%r14d
  movslq %r14d,%r14
  mov    %r13d,(%r10,%r14,4)
  cmp    %r12d,%edi
  jle    L60
  add    $0x2,%eax
  test   $0x1,%r12b
  je     L110
  mov    %r8d,%eax
  imul   %r12d,%eax
  add    %edx,%eax
L81:
  add    %esi,%r12d
  movslq %r12d,%r12
  mov    %eax,(%r10,%r12,4)
L60:
  add    $0x1,%edx
  add    %edi,%esi
  add    %rbx,%rcx
  cmp    %edx,%r8d
  jne    L92
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
  xchg   %ax,%ax
L23:
  imul   %eax,%r13d
  add    %edx,%r13d
  jmp    L75
  nopl   0x0(%rax)
L110:
  imul   %r8d,%eax
  sub    $0x1,%eax
  sub    %edx,%eax
  jmp    L81
L10:
  xor    %r12d,%r12d
  mov    $0x1,%eax
  jmp    L12
L65:
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D19
type: byte[16]
name: extract_symbolic_data
arguments: tag: D29
type: byte[16]
name: extract_symbolic_data
arguments: tag: D23
type: byte[16]

tool: {"D19": [0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00]}

tool: {"D29": [0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00]}

tool: {"D23": [0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00]}

assistant: ```c
void init_transform_map(int width, int height, int map[]) {
  int x, y;
  for (y = 0; y < height; y++)
    for (x = 0; x < width; x++)
      map[y * width + x] = (x & 1) ? height * x + y : height * (x + 1) - 1 - y;
}
```