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

```asm
<get_max_sum_without_consecutive_elements_v2>:
  endbr64
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  movslq %edx,%rbx
  mov    %esi,%edx
  shr    $0x1f,%edx
  sub    $0x8,%rsp
  cmp    %ebx,%esi
  setg   %al
  or     %dl,%al
  jne    L49
  mov    %rdi,%rbp
  test   %rdi,%rdi
  je     L49
  cmp    %ebx,%esi
  je     L47
  mov    %ebx,%eax
  sub    %esi,%eax
  lea    0x4(,%rax,4),%r13d
  mov    %r13d,%edi
  call   <malloc@plt>
  mov    %rax,%r12
  test   %rax,%rax
  jne    L36
L49:
  add    $0x8,%rsp
  xor    %r13d,%r13d
  pop    %rbx
  mov    %r13d,%eax
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
  nopl   0x0(%rax)
L36:
  mov    %rax,%rdi
  mov    %r13d,%edx
  xor    %esi,%esi
  call   <memset@plt>
  mov    0x0(%rbp),%eax
  lea    0x4(%r12),%rdi
  xor    %ecx,%ecx
  mov    $0xffffffff,%r9d
  mov    %eax,(%r12)
  test   %ebx,%ebx
  jle    L18
  nopl   0x0(%rax)
L55:
  mov    -0x4(%rdi),%eax
  mov    0x4(%rbp,%rcx,4),%r8d
  mov    %ecx,%r10d
  test   %rcx,%rcx
  je     L124
  mov    %r9d,%edx
  cmp    $0x2,%r9d
  jbe    L3
  movd   %eax,%xmm5
  movd   %r8d,%xmm6
  lea    -0x24(%rdi),%rdx
  mov    %ecx,%esi
  shr    $0x2,%esi
  pshufd $0x0,%xmm5,%xmm2
  pshufd $0x0,%xmm6,%xmm3
  sub    $0x1,%esi
  lea    -0x14(%rdi),%rax
  shl    $0x4,%rsi
  sub    %rsi,%rdx
  nopl   0x0(%rax,%rax,1)
L1:
  movdqu (%rax),%xmm4
  sub    $0x10,%rax
  pshufd $0x1b,%xmm4,%xmm0
  paddd  %xmm3,%xmm0
  movdqa %xmm0,%xmm1
  pcmpgtd %xmm2,%xmm1
  pand   %xmm1,%xmm0
  pandn  %xmm2,%xmm1
  movdqa %xmm1,%xmm2
  por    %xmm0,%xmm2
  cmp    %rdx,%rax
  jne    L1
  movdqa %xmm2,%xmm1
  mov    %r10d,%esi
  mov    %r9d,%edx
  psrldq $0x8,%xmm1
  and    $0xfffffffc,%esi
  movdqa %xmm1,%xmm0
  sub    %esi,%edx
  pcmpgtd %xmm2,%xmm0
  pand   %xmm0,%xmm1
  pandn  %xmm2,%xmm0
  por    %xmm1,%xmm0
  movdqa %xmm0,%xmm2
  psrldq $0x4,%xmm2
  movdqa %xmm2,%xmm1
  pcmpgtd %xmm0,%xmm1
  pand   %xmm1,%xmm2
  pandn  %xmm0,%xmm1
  por    %xmm2,%xmm1
  movd   %xmm1,%eax
  cmp    %r10d,%esi
  je     L63
L3:
  movslq %edx,%rsi
  mov    (%r12,%rsi,4),%r11d
  lea    0x0(,%rsi,4),%r10
  add    %r8d,%r11d
  cmp    %r11d,%eax
  cmovl  %r11d,%eax
  test   %edx,%edx
  je     L63
  mov    -0x4(%r12,%r10,1),%esi
  add    %r8d,%esi
  cmp    %esi,%eax
  cmovl  %esi,%eax
  cmp    $0x1,%edx
  je     L63
  add    -0x8(%r12,%r10,1),%r8d
  cmp    %r8d,%eax
  cmovl  %r8d,%eax
L63:
  add    $0x1,%rcx
  mov    %eax,(%rdi)
  add    $0x1,%r9d
  add    $0x4,%rdi
  cmp    %rbx,%rcx
  jne    L55
L18:
  mov    (%r12,%rbx,4),%r13d
  mov    %r12,%rdi
  call   <free@plt>
  add    $0x8,%rsp
  pop    %rbx
  mov    %r13d,%eax
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
  nopl   0x0(%rax,%rax,1)
L124:
  cmp    %r8d,%eax
  cmovl  %r8d,%eax
  jmp    L63
  nopl   0x0(%rax)
L47:
  movslq %esi,%rsi
  mov    (%rdi,%rsi,4),%r13d
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  mov    %r13d,%eax
  pop    %r12
  pop    %r13
  ret
```

assistant: ```c
int get_max_sum_without_consecutive_elements_v2(int *array, int low, int high) {
  int index, inner_index, max, temp_max;
  int *max_array;
  if (!array || (low < 0) || (high < 0) || (low > high)) {
    return (0);
  }
  if (low == high) {
    return (array[low]);
  }
  max_array = (int *)malloc(sizeof(int) * (high - low + 1));
  if (!max_array) {
    return (0);
  }
  memset(max_array, 0, sizeof(int) * (high - low + 1));
  max_array[0] = array[0];
  for (index = 1; index <= high; ++index) {
    max = max_array[index - 1];
    if ((index - 2) >= 0) {
      for (inner_index = index - 2; inner_index >= 0; --inner_index) {
        temp_max = array[index] + max_array[inner_index];
        if (temp_max > max) {
          max = temp_max;
        }
      }
    } else {
      temp_max = array[index];
      if (temp_max > max) {
        max = temp_max;
      }
    }
    max_array[index] = max;
  }
  max = max_array[high];
  free(max_array);
  return (max);
}
```