user: 下面的汇编指令对应的C源代码是什么:

```asm
<get_max_sum_without_consecutive_elements_v1>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %edx,%ebx
  mov    %esi,%edx
  shr    $0x1f,%edx
  sub    $0x58,%rsp
  cmp    %ebx,%esi
  setg   %al
  or     %dl,%al
  jne    L262
  test   %rdi,%rdi
  je     L262
  cmp    %ebx,%esi
  je     L222
  lea    -0x1(%rbx),%ebp
  xor    %r15d,%r15d
  cmp    %esi,%ebp
  jl     L393
  je     L123
  lea    -0x2(%rbx),%edx
  mov    %esi,0x8(%rsp)
  mov    %rdi,(%rsp)
  call   <get_max_sum_without_consecutive_elements_v1>
  mov    (%rsp),%rdi
  cmp    $0x1,%ebp
  mov    0x8(%rsp),%esi
  mov    %eax,%r15d
  movslq %ebp,%rax
  lea    (%rdi,%rax,4),%rax
  jle    L480
  mov    (%rax),%ebp
  movslq %esi,%rax
  lea    -0x3(%rbx),%r14d
  mov    %ebx,0x10(%rsp)
  lea    (%rdi,%rax,4),%rax
  mov    %r15d,%ebx
  movslq %r14d,%r14
  mov    %rdi,%r15
  mov    %rax,0x18(%rsp)
  mov    %ebp,(%rsp)
  mov    %esi,%ebp
L125:
  mov    (%rsp),%eax
  mov    %r14d,%r13d
  lea    -0x1(%r14),%edx
  cmp    %r14d,%ebp
  jg     L40
  je     L96
  mov    %ebp,%esi
  mov    %r15,%rdi
  call   <get_max_sum_without_consecutive_elements_v1>
  mov    %eax,%r12d
  cmp    $0x1,%r14d
  jle    L391
  mov    (%r15,%r14,4),%eax
  sub    $0x2,%r13d
  mov    %eax,0x8(%rsp)
L172:
  mov    %r13d,%edx
  mov    %ebp,%esi
  mov    %r15,%rdi
  call   <get_max_sum_without_consecutive_elements_v1>
  add    0x8(%rsp),%eax
  cmp    %eax,%r12d
  cmovl  %eax,%r12d
  sub    $0x1,%r13d
  jae    L172
  mov    (%rsp),%eax
  add    %r12d,%eax
L40:
  cmp    %eax,%ebx
  cmovl  %eax,%ebx
  sub    $0x1,%r14
  cmp    $0xffffffff,%r14d
  jne    L125
  mov    %r15,%rdi
  mov    %ebx,%r15d
  mov    0x10(%rsp),%ebx
  mov    %ebp,%esi
L393:
  movslq %ebx,%rax
  mov    (%rdi,%rax,4),%r11d
  cmp    $0x1,%ebx
  jle    L499
  movslq %esi,%rax
  mov    %r11d,(%rsp)
  sub    $0x2,%ebx
  mov    %r15d,%ecx
  lea    (%rdi,%rax,4),%rax
  movslq %ebx,%r14
  mov    %rax,0x10(%rsp)
L267:
  mov    (%rsp),%eax
  mov    %r14d,%r12d
  cmp    %r14d,%esi
  jg     L388
  je     L126
  lea    -0x1(%r14),%ebp
  mov    %r14d,%ebx
  xor    %r13d,%r13d
  cmp    %ebp,%esi
  jg     L26
  je     L167
  lea    -0x2(%r14),%edx
  mov    %ecx,0x20(%rsp)
  mov    %esi,0x18(%rsp)
  mov    %rdi,0x8(%rsp)
  call   <get_max_sum_without_consecutive_elements_v1>
  cmp    $0x1,%ebp
  mov    0x18(%rsp),%esi
  mov    0x20(%rsp),%ecx
  mov    0x8(%rsp),%rdi
  mov    %eax,%r13d
  jle    L179
  lea    -0x3(%r14),%r15d
  mov    %r14d,0x8(%rsp)
  mov    -0x4(%rdi,%r14,4),%ebp
  mov    %eax,%ebx
  mov    %r14d,0x18(%rsp)
  mov    %r15d,%r13d
  mov    %rdi,%r12
  mov    %ecx,%r15d
  mov    %r14,0x20(%rsp)
  mov    %esi,%r14d
L154:
  mov    %r13d,%edx
  mov    %r14d,%esi
  mov    %r12,%rdi
  call   <get_max_sum_without_consecutive_elements_v1>
  add    %ebp,%eax
  cmp    %eax,%ebx
  cmovl  %eax,%ebx
  sub    $0x1,%r13d
  jae    L154
  mov    %ebx,%r13d
  mov    %r12,%rdi
  mov    %r14d,%esi
  mov    0x8(%rsp),%ebx
  mov    0x18(%rsp),%r12d
  mov    0x20(%rsp),%r14
  mov    %r15d,%ecx
L26:
  mov    (%rdi,%r14,4),%eax
  mov    %eax,0x8(%rsp)
  cmp    $0x1,%r12d
  jle    L462
  mov    %r14,0x28(%rsp)
  sub    $0x2,%ebx
  mov    %r13d,%r15d
  mov    %ecx,0x30(%rsp)
  movslq %ebx,%rbx
L242:
  mov    0x8(%rsp),%ebp
  mov    %ebx,%r12d
  lea    -0x1(%rbx),%edx
  cmp    %ebx,%esi
  jg     L233
  je     L473
  mov    %esi,0x20(%rsp)
  mov    %rdi,0x18(%rsp)
  call   <get_max_sum_without_consecutive_elements_v1>
  mov    0x18(%rsp),%rdi
  cmp    $0x1,%ebx
  mov    0x20(%rsp),%esi
  mov    %eax,%ebp
  mov    (%rdi,%rbx,4),%eax
  jle    L389
  mov    %eax,0x18(%rsp)
  sub    $0x2,%r12d
  mov    %rdi,%r14
  mov    %rbx,0x38(%rsp)
  movslq %r12d,%r12
  mov    %r15d,0x34(%rsp)
  mov    %ebp,%r15d
  mov    %esi,%ebp
L418:
  mov    0x18(%rsp),%r13d
  lea    -0x1(%r12),%edx
  cmp    %r12d,%ebp
  jg     L206
  je     L412
  mov    %ebp,%esi
  mov    %r14,%rdi
  call   <get_max_sum_without_consecutive_elements_v1>
  mov    %eax,%r13d
  mov    (%r14,%r12,4),%eax
  cmp    $0x1,%r12d
  jle    L498
  lea    -0x2(%r12),%ecx
  mov    %eax,0x20(%rsp)
  movslq %ecx,%rcx
  mov    %r15d,0x48(%rsp)
  mov    %r14,%r15
  mov    %r12,0x40(%rsp)
  mov    %r13d,%r12d
  mov    %rcx,%r13
L184:
  mov    0x20(%rsp),%eax
  mov    %r13d,%r14d
  lea    -0x1(%r13),%edx
  cmp    %r13d,%ebp
  jg     L35
  je     L387
  mov    %ebp,%esi
  mov    %r15,%rdi
  call   <get_max_sum_without_consecutive_elements_v1>
  mov    %eax,%ebx
  cmp    $0x1,%r13d
  jle    L365
  mov    (%r15,%r13,4),%eax
  mov    %r12d,0x4c(%rsp)
  sub    $0x2,%r14d
  mov    %ebp,%r12d
  mov    %ebx,%ebp
  mov    %eax,%ebx
L411:
  mov    %r14d,%edx
  mov    %r12d,%esi
  mov    %r15,%rdi
  call   <get_max_sum_without_consecutive_elements_v1>
  add    %ebx,%eax
  cmp    %eax,%ebp
  cmovl  %eax,%ebp
  sub    $0x1,%r14d
  jae    L411
  mov    0x20(%rsp),%eax
  mov    %ebp,%ebx
  mov    %r12d,%ebp
  mov    0x4c(%rsp),%r12d
  add    %ebx,%eax
L35:
  cmp    %eax,%r12d
  cmovl  %eax,%r12d
  sub    $0x1,%r13
  cmp    $0xffffffff,%r13d
  jne    L184
  mov    %r12d,%r13d
  mov    %r15,%r14
  mov    0x40(%rsp),%r12
  mov    0x48(%rsp),%r15d
  add    0x18(%rsp),%r13d
L206:
  cmp    %r13d,%r15d
  cmovl  %r13d,%r15d
  sub    $0x1,%r12
  cmp    $0xffffffff,%r12d
  jne    L418
  mov    %ebp,%esi
  mov    0x38(%rsp),%rbx
  mov    %r15d,%ebp
  mov    0x34(%rsp),%r15d
  mov    %r14,%rdi
  add    0x8(%rsp),%ebp
L233:
  cmp    %ebp,%r15d
  cmovl  %ebp,%r15d
  sub    $0x1,%rbx
  cmp    $0xffffffff,%ebx
  jne    L242
  mov    (%rsp),%eax
  mov    0x28(%rsp),%r14
  mov    0x30(%rsp),%ecx
  add    %r15d,%eax
L388:
  cmp    %eax,%ecx
  cmovl  %eax,%ecx
  sub    $0x1,%r14
  cmp    $0xffffffff,%r14d
  jne    L267
  mov    %ecx,%r15d
  jmp    L303
  nopl   0x0(%rax)
L262:
  xor    %r15d,%r15d
L303:
  add    $0x58,%rsp
  mov    %r15d,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   (%rax)
L499:
  cmp    %r11d,%r15d
  cmovl  %r11d,%r15d
  jmp    L303
  nopl   0x0(%rax)
L222:
  movslq %esi,%rsi
  mov    (%rdi,%rsi,4),%r15d
  jmp    L303
  nopl   0x0(%rax)
L126:
  mov    0x10(%rsp),%rbx
  add    (%rbx),%eax
  jmp    L388
  nopl   0x0(%rax)
L462:
  cmp    %eax,%r13d
  cmovge %r13d,%eax
  add    (%rsp),%eax
  jmp    L388
  nopl   0x0(%rax)
L473:
  mov    0x10(%rsp),%rax
  add    (%rax),%ebp
  jmp    L233
  nopl   0x0(%rax)
L480:
  mov    (%rax),%eax
  cmp    %eax,%r15d
  cmovl  %eax,%r15d
  jmp    L393
  cs nopw 0x0(%rax,%rax,1)
L167:
  mov    -0x4(%rdi,%r14,4),%r13d
  jmp    L26
  nopw   0x0(%rax,%rax,1)
L498:
  cmp    %eax,%r13d
  cmovl  %eax,%r13d
  add    0x18(%rsp),%r13d
  jmp    L206
  nopl   0x0(%rax)
L123:
  movslq %esi,%rax
  mov    (%rdi,%rax,4),%r15d
  jmp    L393
  nopl   0x0(%rax)
L389:
  cmp    %eax,%ebp
  cmovl  %eax,%ebp
  add    0x8(%rsp),%ebp
  jmp    L233
  cs nopw 0x0(%rax,%rax,1)
L412:
  mov    0x10(%rsp),%rax
  add    (%rax),%r13d
  jmp    L206
  nopl   (%rax)
L96:
  mov    0x18(%rsp),%rcx
  add    (%rcx),%eax
  jmp    L40
  nopl   0x0(%rax)
L179:
  mov    -0x4(%rdi,%r14,4),%eax
  cmp    %eax,%r13d
  cmovl  %eax,%r13d
  jmp    L26
  nopl   0x0(%rax)
L391:
  mov    (%r15,%r14,4),%eax
  cmp    %eax,%r12d
  cmovge %r12d,%eax
  add    (%rsp),%eax
  jmp    L40
  nopl   0x0(%rax,%rax,1)
L387:
  mov    0x10(%rsp),%rcx
  add    (%rcx),%eax
  jmp    L35
  nopl   0x0(%rax)
L365:
  mov    (%r15,%r13,4),%eax
  cmp    %eax,%ebx
  cmovge %ebx,%eax
  add    0x20(%rsp),%eax
  jmp    L35
```

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