user: What would the C source look like for the assembly code provided here?

```asm
<createTree>:
  endbr64
  push   %r15
  mov    $0x70,%ecx
  push   %r14
  push   %r13
  mov    $0xf,%r13d
  push   %r12
  push   %rbp
  xor    %ebp,%ebp
  push   %rbx
  sub    $0x428,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x418(%rsp)
  xor    %eax,%eax
  lea    0x90(%rsp),%rdi
  lea    0x10(%rsp),%r15
  rep stos %rax,%es:(%rdi)
  movabs $0x3e00000004,%rax
  movabs $0x4e00000011,%rcx
  movl   $0x1f,0x100(%rsp)
  mov    %rax,0x90(%rsp)
  movabs $0x1b00000062,%rax
  mov    %rax,0x98(%rsp)
  movabs $0x900000017,%rax
  mov    %rax,0xa0(%rsp)
  movabs $0x6200000046,%rax
  mov    %rax,0xa8(%rsp)
  movabs $0x5d00000049,%rax
  mov    %rax,0xb0(%rsp)
  movabs $0x3500000026,%rax
  mov    %rax,0xb8(%rsp)
  movabs $0x40000003c,%rax
  mov    %rax,0xc0(%rsp)
  movabs $0x3f00000017,%rax
  mov    %rax,0xc8(%rsp)
  movabs $0x400000042,%rax
  mov    %rax,0xd0(%rsp)
  movabs $0x5900000044,%rax
  mov    %rax,0xd8(%rsp)
  movabs $0x4300000035,%rax
  mov    %rax,0xe0(%rsp)
  movabs $0x490000001e,%rax
  mov    %rax,0xe8(%rsp)
  movabs $0x4500000010,%rax
  mov    %rax,0xf0(%rsp)
  movabs $0x2800000057,%rax
  mov    %rax,0xf8(%rsp)
  movabs $0x470000005b,%rax
  mov    %rax,0x108(%rsp)
  movabs $0x2600000035,%rax
  mov    %rax,0x110(%rsp)
  movabs $0xe00000011,%rax
  mov    %rax,0x118(%rsp)
  movabs $0x2b0000005b,%rax
  mov    %rax,0x120(%rsp)
  movabs $0x320000003a,%rax
  mov    %rax,0x128(%rsp)
  movabs $0x1d0000001b,%rax
  mov    %rax,0x130(%rsp)
  movabs $0xb00000046,%rax
  movl   $0x0,(%rdi)
  movl   $0x30,0x138(%rsp)
  mov    %rcx,0x15c(%rsp)
  movabs $0x4400000027,%rcx
  mov    %rcx,0x164(%rsp)
  movabs $0x3900000011,%rcx
  mov    %rcx,0x16c(%rsp)
  movabs $0x4700000035,%rcx
  mov    %rcx,0x180(%rsp)
  movabs $0x410000002c,%rcx
  mov    %rcx,0x188(%rsp)
  movabs $0x2b00000019,%rcx
  mov    %rcx,0x190(%rsp)
  movabs $0x340000005b,%rcx
  mov    %rcx,0x198(%rsp)
  movabs $0xe00000033,%rcx
  mov    %rcx,0x1a4(%rsp)
  movabs $0x3000000029,%rcx
  mov    %rcx,0x1bc(%rsp)
  movabs $0x2100000048,%rcx
  mov    %rcx,0x1c4(%rsp)
  movabs $0x200000002f,%rcx
  mov    %rcx,0x1cc(%rsp)
  movabs $0x1000000025,%rcx
  mov    %rcx,0x1d4(%rsp)
  movabs $0x1d0000005e,%rcx
  mov    %rcx,0x1dc(%rsp)
  movabs $0x2900000029,%rcx
  mov    %rcx,0x1f8(%rsp)
  movabs $0x380000001a,%rcx
  mov    %rcx,0x200(%rsp)
  movabs $0x2800000053,%rcx
  mov    %rax,0x144(%rsp)
  movabs $0x1c00000021,%rax
  mov    %rcx,0x208(%rsp)
  movabs $0x4600000050,%rcx
  mov    %rax,0x14c(%rsp)
  movabs $0x490000004d,%rax
  mov    %rcx,0x210(%rsp)
  movabs $0x4100000063,%rcx
  mov    %rax,0x154(%rsp)
  mov    %rcx,0x234(%rsp)
  movabs $0x1c00000004,%rcx
  mov    %rax,0x278(%rsp)
  movabs $0x3f00000007,%rax
  mov    %rcx,0x23c(%rsp)
  movabs $0x1000000006,%rcx
  mov    %rax,0x280(%rsp)
  movabs $0x100000013,%rax
  mov    %rcx,0x244(%rsp)
  movabs $0x5c00000046,%rcx
  mov    %rax,0x2ac(%rsp)
  movabs $0x4b00000017,%rax
  mov    %rcx,0x24c(%rsp)
  movabs $0x200000058,%rcx
  mov    %rax,0x2b4(%rsp)
  movabs $0x2200000003,%rax
  movl   $0x61,0x1a0(%rsp)
  movl   $0x21,0x218(%rsp)
  mov    %rcx,0x270(%rsp)
  movl   $0x43,0x288(%rsp)
  mov    %rax,0x2bc(%rsp)
  movabs $0x400000014,%rax
  mov    %rax,0x2e8(%rsp)
  movabs $0x2f00000052,%rax
  mov    %rax,0x2f0(%rsp)
  movabs $0x2300000012,%rax
  mov    %rax,0x324(%rsp)
  movabs $0xa00000057,%rax
  mov    %rax,0x32c(%rsp)
  movabs $0x2f00000011,%rax
  mov    %rax,0x360(%rsp)
  movabs $0x400000005f,%rax
  mov    %rax,0x39c(%rsp)
  lea    0x90(%rsp),%rax
  movl   $0x41,0x2f8(%rsp)
  mov    %rax,%r14
  movl   $0x52,0x368(%rsp)
  movl   $0x4b,0x3d8(%rsp)
  mov    %rax,0x8(%rsp)
  nopl   0x0(%rax)
L20:
  xor    %ebx,%ebx
  jmp    L35
  nopl   0x0(%rax)
L56:
  mov    (%r14,%rbx,4),%edi
  call   <createNode@plt>
  mov    0x8(%r15,%rbx,8),%rdx
  mov    (%r15,%rbx,8),%rsi
  mov    %rax,%r12
  mov    %rax,%rdi
  call   <addtoNode@plt>
  mov    %r12,%rax
  mov    %rax,(%r15,%rbx,8)
  add    $0x1,%rbx
  cmp    %r13,%rbx
  je     L22
L35:
  test   %ebp,%ebp
  jne    L56
  mov    0x8(%rsp),%rax
  mov    (%rax,%rbx,4),%edi
  call   <createNode@plt>
  mov    %rax,(%r15,%rbx,8)
  add    $0x1,%rbx
  cmp    %r13,%rbx
  jne    L35
L22:
  add    $0x1,%ebp
  lea    -0x1(%rbx),%r13
  add    $0x3c,%r14
  cmp    $0xf,%ebp
  jne    L20
  mov    0x418(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L51
  add    $0x428,%rsp
  mov    %r12,%rax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L51:
  call   <__stack_chk_fail@plt>
```

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;
}
```