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

```asm
<createTree>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x430,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    -0x390(%rbp),%rdx
  mov    $0x0,%eax
  mov    $0x70,%ecx
  mov    %rdx,%rdi
  rep stos %rax,%es:(%rdi)
  mov    %rdi,%rdx
  mov    %eax,(%rdx)
  add    $0x4,%rdx
  movl   $0x4,-0x390(%rbp)
  movl   $0x3e,-0x38c(%rbp)
  movl   $0x62,-0x388(%rbp)
  movl   $0x1b,-0x384(%rbp)
  movl   $0x17,-0x380(%rbp)
  movl   $0x9,-0x37c(%rbp)
  movl   $0x46,-0x378(%rbp)
  movl   $0x62,-0x374(%rbp)
  movl   $0x49,-0x370(%rbp)
  movl   $0x5d,-0x36c(%rbp)
  movl   $0x26,-0x368(%rbp)
  movl   $0x35,-0x364(%rbp)
  movl   $0x3c,-0x360(%rbp)
  movl   $0x4,-0x35c(%rbp)
  movl   $0x17,-0x358(%rbp)
  movl   $0x3f,-0x354(%rbp)
  movl   $0x42,-0x350(%rbp)
  movl   $0x4,-0x34c(%rbp)
  movl   $0x44,-0x348(%rbp)
  movl   $0x59,-0x344(%rbp)
  movl   $0x35,-0x340(%rbp)
  movl   $0x43,-0x33c(%rbp)
  movl   $0x1e,-0x338(%rbp)
  movl   $0x49,-0x334(%rbp)
  movl   $0x10,-0x330(%rbp)
  movl   $0x45,-0x32c(%rbp)
  movl   $0x57,-0x328(%rbp)
  movl   $0x28,-0x324(%rbp)
  movl   $0x1f,-0x320(%rbp)
  movl   $0x5b,-0x318(%rbp)
  movl   $0x47,-0x314(%rbp)
  movl   $0x35,-0x310(%rbp)
  movl   $0x26,-0x30c(%rbp)
  movl   $0x11,-0x308(%rbp)
  movl   $0xe,-0x304(%rbp)
  movl   $0x5b,-0x300(%rbp)
  movl   $0x2b,-0x2fc(%rbp)
  movl   $0x3a,-0x2f8(%rbp)
  movl   $0x32,-0x2f4(%rbp)
  movl   $0x1b,-0x2f0(%rbp)
  movl   $0x1d,-0x2ec(%rbp)
  movl   $0x30,-0x2e8(%rbp)
  movl   $0x46,-0x2dc(%rbp)
  movl   $0xb,-0x2d8(%rbp)
  movl   $0x21,-0x2d4(%rbp)
  movl   $0x1c,-0x2d0(%rbp)
  movl   $0x4d,-0x2cc(%rbp)
  movl   $0x49,-0x2c8(%rbp)
  movl   $0x11,-0x2c4(%rbp)
  movl   $0x4e,-0x2c0(%rbp)
  movl   $0x27,-0x2bc(%rbp)
  movl   $0x44,-0x2b8(%rbp)
  movl   $0x11,-0x2b4(%rbp)
  movl   $0x39,-0x2b0(%rbp)
  movl   $0x35,-0x2a0(%rbp)
  movl   $0x47,-0x29c(%rbp)
  movl   $0x2c,-0x298(%rbp)
  movl   $0x41,-0x294(%rbp)
  movl   $0x19,-0x290(%rbp)
  movl   $0x2b,-0x28c(%rbp)
  movl   $0x5b,-0x288(%rbp)
  movl   $0x34,-0x284(%rbp)
  movl   $0x61,-0x280(%rbp)
  movl   $0x33,-0x27c(%rbp)
  movl   $0xe,-0x278(%rbp)
  movl   $0x29,-0x264(%rbp)
  movl   $0x30,-0x260(%rbp)
  movl   $0x48,-0x25c(%rbp)
  movl   $0x21,-0x258(%rbp)
  movl   $0x2f,-0x254(%rbp)
  movl   $0x20,-0x250(%rbp)
  movl   $0x25,-0x24c(%rbp)
  movl   $0x10,-0x248(%rbp)
  movl   $0x5e,-0x244(%rbp)
  movl   $0x1d,-0x240(%rbp)
  movl   $0x29,-0x228(%rbp)
  movl   $0x29,-0x224(%rbp)
  movl   $0x1a,-0x220(%rbp)
  movl   $0x38,-0x21c(%rbp)
  movl   $0x53,-0x218(%rbp)
  movl   $0x28,-0x214(%rbp)
  movl   $0x50,-0x210(%rbp)
  movl   $0x46,-0x20c(%rbp)
  movl   $0x21,-0x208(%rbp)
  movl   $0x63,-0x1ec(%rbp)
  movl   $0x41,-0x1e8(%rbp)
  movl   $0x4,-0x1e4(%rbp)
  movl   $0x1c,-0x1e0(%rbp)
  movl   $0x6,-0x1dc(%rbp)
  movl   $0x10,-0x1d8(%rbp)
  movl   $0x46,-0x1d4(%rbp)
  movl   $0x5c,-0x1d0(%rbp)
  movl   $0x58,-0x1b0(%rbp)
  movl   $0x2,-0x1ac(%rbp)
  movl   $0x4d,-0x1a8(%rbp)
  movl   $0x49,-0x1a4(%rbp)
  movl   $0x7,-0x1a0(%rbp)
  movl   $0x3f,-0x19c(%rbp)
  movl   $0x43,-0x198(%rbp)
  movl   $0x13,-0x174(%rbp)
  movl   $0x1,-0x170(%rbp)
  movl   $0x17,-0x16c(%rbp)
  movl   $0x4b,-0x168(%rbp)
  movl   $0x3,-0x164(%rbp)
  movl   $0x22,-0x160(%rbp)
  movl   $0x14,-0x138(%rbp)
  movl   $0x4,-0x134(%rbp)
  movl   $0x52,-0x130(%rbp)
  movl   $0x2f,-0x12c(%rbp)
  movl   $0x41,-0x128(%rbp)
  movl   $0x12,-0xfc(%rbp)
  movl   $0x23,-0xf8(%rbp)
  movl   $0x57,-0xf4(%rbp)
  movl   $0xa,-0xf0(%rbp)
  movl   $0x11,-0xc0(%rbp)
  movl   $0x2f,-0xbc(%rbp)
  movl   $0x52,-0xb8(%rbp)
  movl   $0x5f,-0x84(%rbp)
  movl   $0x40,-0x80(%rbp)
  movl   $0x4b,-0x48(%rbp)
  movl   $0x0,-0x428(%rbp)
  jmp    L2
L19:
  movl   $0x0,-0x424(%rbp)
  jmp    L39
L54:
  cmpl   $0x0,-0x428(%rbp)
  jne    L61
  mov    -0x424(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x428(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x4,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0x390(%rbp,%rax,4),%eax
  mov    %eax,%edi
  call   <createNode@plt>
  mov    -0x424(%rbp),%edx
  movslq %edx,%rdx
  mov    %rax,-0x410(%rbp,%rdx,8)
  jmp    L53
L61:
  mov    -0x424(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x428(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x4,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0x390(%rbp,%rax,4),%eax
  mov    %eax,%edi
  call   <createNode@plt>
  mov    %rax,-0x420(%rbp)
  mov    -0x424(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    -0x410(%rbp,%rax,8),%rdx
  mov    -0x424(%rbp),%eax
  cltq
  mov    -0x410(%rbp,%rax,8),%rcx
  mov    -0x420(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <addtoNode@plt>
  mov    -0x424(%rbp),%eax
  cltq
  mov    -0x420(%rbp),%rdx
  mov    %rdx,-0x410(%rbp,%rax,8)
L53:
  addl   $0x1,-0x424(%rbp)
L39:
  mov    $0xf,%eax
  sub    -0x428(%rbp),%eax
  cmp    %eax,-0x424(%rbp)
  jl     L54
  addl   $0x1,-0x428(%rbp)
L2:
  cmpl   $0xe,-0x428(%rbp)
  jle    L19
  mov    -0x420(%rbp),%rax
  mov    %rax,-0x418(%rbp)
  mov    -0x418(%rbp),%rax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L57
  call   <__stack_chk_fail@plt>
L57:
  leave
  ret
```

assistant: ```c
struct node *createTree() {
  struct node *top, *aux[15], *temp;
  int i, j;
  int row[15][15] = {{4, 62, 98, 27, 23, 9, 70, 98, 73, 93, 38, 53, 60, 4, 23}, {63, 66, 4, 68, 89, 53, 67, 30, 73, 16, 69, 87, 40, 31}, {91, 71, 53, 38, 17, 14, 91, 43, 58, 50, 27, 29, 48}, {70, 11, 33, 28, 77, 73, 17, 78, 39, 68, 17, 57}, {53, 71, 44, 65, 25, 43, 91, 52, 97, 51, 14}, {41, 48, 72, 33, 47, 32, 37, 16, 94, 29}, {41, 41, 26, 56, 83, 40, 80, 70, 33}, {99, 65, 04, 28, 06, 16, 70, 92}, {88, 02, 77, 73, 07, 63, 67}, {19, 01, 23, 75, 03, 34}, {20, 04, 82, 47, 65}, {18, 35, 87, 10}, {17, 47, 82}, {95, 64}, {75}};
  for (i = 0; i < 15; i++) {
    for (j = 0; j < (15 - i); j++) {
      if (i == 0) {
        aux[j] = createNode(row[i][j]);
      } else {
        temp = createNode(row[i][j]);
        addtoNode(temp, aux[j], aux[j + 1]);
        aux[j] = temp;
      }
    }
  }
  top = temp;
  return top;
}
```