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

```asm
<getSumUtil>:
  endbr64
  push   %r15
  mov    %ecx,%r15d
  push   %r14
  mov    %r8d,%r14d
  push   %r13
  mov    %esi,%r13d
  push   %r12
  push   %rbp
  mov    %rdi,%rbp
  push   %rbx
  mov    %r9d,%ebx
  sub    $0x88,%rsp
  cmp    %edx,%r8d
  setge  0x57(%rsp)
  movzbl 0x57(%rsp),%eax
  mov    %edx,0x64(%rsp)
  cmp    %esi,%ecx
  jg     L112
  test   %al,%al
  jne    L707
L112:
  cmp    %r13d,%r14d
  jl     L197
  cmp    0x64(%rsp),%r15d
  jg     L197
  movl   $0x0,0x24(%rsp)
  mov    %r14d,%eax
  mov    %r15d,%r14d
  mov    %eax,%r15d
L453:
  mov    0x64(%rsp),%esi
  mov    %r13d,%edi
  call   <getMid@plt>
  lea    (%rbx,%rbx,1),%esi
  cmp    %eax,%r15d
  mov    %eax,0x3c(%rsp)
  lea    0x1(%rsi),%ebx
  setge  0x58(%rsp)
  movzbl 0x58(%rsp),%eax
  mov    %esi,0x68(%rsp)
  cmp    %r13d,%r14d
  jg     L74
  test   %al,%al
  jne    L676
L74:
  cmp    %r13d,%r15d
  jl     L117
  cmp    0x3c(%rsp),%r14d
  jg     L117
  movl   $0x0,0x2c(%rsp)
L305:
  mov    0x3c(%rsp),%esi
  mov    %r13d,%edi
  call   <getMid@plt>
  lea    (%rbx,%rbx,1),%edi
  cmp    %eax,%r15d
  mov    %eax,0x40(%rsp)
  lea    0x1(%rdi),%ebx
  setge  0x59(%rsp)
  movzbl 0x59(%rsp),%eax
  mov    %edi,0x6c(%rsp)
  cmp    %r13d,%r14d
  jg     L105
  test   %al,%al
  jne    L190
L105:
  cmp    %r13d,%r15d
  jl     L317
  cmp    0x40(%rsp),%r14d
  jg     L317
  movl   $0x0,0x30(%rsp)
  mov    %rbp,0x8(%rsp)
  mov    %r15d,%ebp
  mov    %r13d,%r15d
  mov    %r14d,%r13d
L268:
  mov    0x40(%rsp),%esi
  mov    %r15d,%edi
  call   <getMid@plt>
  lea    (%rbx,%rbx,1),%ecx
  cmp    %eax,%ebp
  mov    %eax,0x44(%rsp)
  lea    0x1(%rcx),%ebx
  setge  0x5a(%rsp)
  movzbl 0x5a(%rsp),%eax
  mov    %ecx,0x70(%rsp)
  cmp    %r15d,%r13d
  jg     L104
  test   %al,%al
  jne    L24
L104:
  cmp    0x44(%rsp),%r13d
  jg     L362
  cmp    %r15d,%ebp
  jl     L362
  movl   $0x0,0x34(%rsp)
  mov    %ebp,%r14d
  mov    %r13d,%ebp
L264:
  mov    0x44(%rsp),%esi
  mov    %r15d,%edi
  call   <getMid@plt>
  lea    (%rbx,%rbx,1),%esi
  cmp    %eax,%r14d
  mov    %eax,0x48(%rsp)
  lea    0x1(%rsi),%ebx
  setge  0x55(%rsp)
  movzbl 0x55(%rsp),%eax
  mov    %esi,0x74(%rsp)
  cmp    %r15d,%ebp
  jg     L274
  test   %al,%al
  jne    L730
L274:
  cmp    0x48(%rsp),%ebp
  jg     L202
  cmp    %r15d,%r14d
  jl     L202
  movl   $0x0,0x20(%rsp)
  mov    %r15d,%r13d
  mov    %ebp,%r12d
  mov    %r14d,%r15d
L73:
  mov    0x48(%rsp),%esi
  mov    %r13d,%edi
  call   <getMid@plt>
  lea    (%rbx,%rbx,1),%edx
  cmp    %eax,%r15d
  mov    %eax,0x38(%rsp)
  lea    0x1(%rdx),%ebx
  setge  0x56(%rsp)
  movzbl 0x56(%rsp),%eax
  mov    %edx,0x78(%rsp)
  cmp    %r13d,%r12d
  jg     L37
  test   %al,%al
  jne    L694
L37:
  cmp    0x38(%rsp),%r12d
  jg     L433
  cmp    %r13d,%r15d
  jl     L433
  movl   $0x0,0x10(%rsp)
  mov    %r15d,%eax
  mov    %r12d,%r15d
  mov    %eax,%r12d
L705:
  mov    0x38(%rsp),%esi
  mov    %r13d,%edi
  call   <getMid@plt>
  lea    (%rbx,%rbx,1),%ecx
  cmp    %eax,%r12d
  mov    %eax,0x18(%rsp)
  lea    0x1(%rcx),%ebx
  setge  0x2b(%rsp)
  movzbl 0x2b(%rsp),%eax
  mov    %ecx,0x4c(%rsp)
  cmp    %r13d,%r15d
  jg     L568
  test   %al,%al
  jne    L316
L568:
  cmp    0x18(%rsp),%r15d
  jg     L499
  cmp    %r13d,%r12d
  jl     L499
  movl   $0x0,0x14(%rsp)
L689:
  mov    0x18(%rsp),%esi
  mov    %r13d,%edi
  call   <getMid@plt>
  lea    (%rbx,%rbx,1),%edx
  cmp    %eax,%r12d
  mov    %eax,0x1c(%rsp)
  lea    0x1(%rdx),%ebp
  setge  0x54(%rsp)
  movzbl 0x54(%rsp),%eax
  mov    %edx,0x50(%rsp)
  cmp    %r13d,%r15d
  jg     L56
  test   %al,%al
  jne    L523
L56:
  cmp    %r13d,%r12d
  jl     L241
  cmp    0x1c(%rsp),%r15d
  jg     L241
  xor    %r14d,%r14d
  mov    %r15d,%eax
  mov    %r14d,%r15d
  mov    %eax,%r14d
L0:
  mov    0x1c(%rsp),%esi
  mov    %r13d,%edi
  call   <getMid@plt>
  mov    %eax,%r10d
  lea    0x0(%rbp,%rbp,1),%eax
  cmp    %r10d,%r12d
  mov    %eax,0x7c(%rsp)
  lea    0x1(%rax),%ebx
  setge  0x5b(%rsp)
  movzbl 0x5b(%rsp),%eax
  cmp    %r13d,%r14d
  jg     L194
  test   %al,%al
  jne    L462
L194:
  cmp    %r13d,%r12d
  jl     L429
  cmp    %r10d,%r14d
  jg     L429
  xor    %ebp,%ebp
  mov    %r12d,%eax
  mov    %r15d,0x5c(%rsp)
  mov    %r10d,%r15d
  mov    %ebp,%r12d
  mov    %r13d,%ebp
  mov    %eax,%r13d
L239:
  mov    %ebp,%edi
  mov    %r15d,%esi
  add    %ebx,%ebx
  call   <getMid@plt>
  mov    0x8(%rsp),%rdi
  lea    0x1(%rbx),%r9d
  mov    %ebp,%esi
  mov    %eax,%edx
  mov    %r13d,%r8d
  mov    %r14d,%ecx
  mov    %eax,0x60(%rsp)
  call   <getSumUtil>
  mov    0x60(%rsp),%edx
  add    $0x2,%ebx
  add    %eax,%r12d
  lea    0x1(%rdx),%ebp
  cmp    %ebp,%r14d
  jg     L279
  cmpb   $0x0,0x5b(%rsp)
  jne    L293
L279:
  cmp    %ebp,%r13d
  jge    L239
  mov    %r15d,%r10d
  mov    0x5c(%rsp),%r15d
  mov    %r12d,%ebp
  mov    %r13d,%r12d
  add    %ebp,%r15d
L429:
  mov    0x7c(%rsp),%ebp
  lea    0x1(%r10),%r13d
  add    $0x2,%ebp
  cmp    %r13d,%r14d
  jg     L571
  cmpb   $0x0,0x54(%rsp)
  jne    L6
L571:
  cmp    %r13d,%r12d
  jge    L0
  mov    %r14d,%eax
  mov    %r15d,%r14d
  add    %r14d,0x14(%rsp)
  mov    %eax,%r15d
L241:
  mov    0x1c(%rsp),%r13d
  mov    0x50(%rsp),%ebx
  add    $0x1,%r13d
  add    $0x2,%ebx
  cmp    %r13d,%r15d
  jg     L394
  cmpb   $0x0,0x2b(%rsp)
  jne    L113
L394:
  cmp    %r13d,%r12d
  jge    L689
  mov    0x14(%rsp),%edi
  add    %edi,0x10(%rsp)
L499:
  mov    0x18(%rsp),%r13d
  mov    0x4c(%rsp),%ebx
  add    $0x1,%r13d
  add    $0x2,%ebx
  cmp    %r13d,%r15d
  jg     L55
  cmpb   $0x0,0x56(%rsp)
  jne    L353
L55:
  cmp    %r13d,%r12d
  jge    L705
  mov    0x10(%rsp),%edi
  add    %edi,0x20(%rsp)
  mov    %r12d,%eax
  mov    %r15d,%r12d
  mov    %eax,%r15d
L433:
  mov    0x38(%rsp),%r13d
  mov    0x78(%rsp),%ebx
  add    $0x1,%r13d
  add    $0x2,%ebx
  cmp    %r13d,%r12d
  jg     L662
  cmpb   $0x0,0x55(%rsp)
  jne    L663
L662:
  cmp    %r13d,%r15d
  jge    L73
  mov    0x20(%rsp),%edx
  add    %edx,0x34(%rsp)
  mov    %r12d,%ebp
  mov    %r15d,%r14d
L202:
  mov    0x48(%rsp),%r15d
  mov    0x74(%rsp),%ebx
  add    $0x1,%r15d
  add    $0x2,%ebx
  cmp    %r15d,%ebp
  jg     L632
  cmpb   $0x0,0x5a(%rsp)
  jne    L12
L632:
  cmp    %r15d,%r14d
  jge    L264
  mov    0x34(%rsp),%ecx
  add    %ecx,0x30(%rsp)
  mov    %ebp,%r13d
  mov    %r14d,%ebp
L362:
  mov    0x44(%rsp),%r15d
  mov    0x70(%rsp),%ebx
  add    $0x1,%r15d
  add    $0x2,%ebx
  cmp    %r15d,%r13d
  jg     L345
  cmpb   $0x0,0x59(%rsp)
  jne    L199
L345:
  cmp    %r15d,%ebp
  jge    L268
  mov    0x30(%rsp),%esi
  add    %esi,0x2c(%rsp)
  mov    %ebp,%r15d
  mov    %r13d,%r14d
  mov    0x8(%rsp),%rbp
L317:
  mov    0x40(%rsp),%r13d
  mov    0x6c(%rsp),%ebx
  add    $0x1,%r13d
  add    $0x2,%ebx
  cmp    %r13d,%r14d
  jg     L177
  cmpb   $0x0,0x58(%rsp)
  jne    L313
L177:
  cmp    %r13d,%r15d
  jge    L305
  mov    0x2c(%rsp),%ecx
  add    %ecx,0x24(%rsp)
  jmp    L117
  nopw   0x0(%rax,%rax,1)
L462:
  xor    %ebp,%ebp
L363:
  mov    0x8(%rsp),%rax
  movslq %ebx,%rbx
  add    (%rax,%rbx,4),%ebp
  add    %ebp,%r15d
  jmp    L429
  nopl   (%rax)
L6:
  mov    %r14d,%eax
  mov    %r15d,%r14d
  mov    %eax,%r15d
L281:
  mov    0x8(%rsp),%rsi
  movslq %ebp,%rbp
  mov    (%rsi,%rbp,4),%eax
  add    %r14d,%eax
  add    %eax,0x14(%rsp)
  jmp    L241
L316:
  movl   $0x0,0x14(%rsp)
L113:
  mov    0x8(%rsp),%rcx
  movslq %ebx,%rbx
  mov    0x14(%rsp),%eax
  add    (%rcx,%rbx,4),%eax
  add    %eax,0x10(%rsp)
  jmp    L499
L353:
  mov    %r12d,%eax
  mov    %r15d,%r12d
  mov    %eax,%r15d
L627:
  mov    0x8(%rsp),%rsi
  movslq %ebx,%rbx
  mov    0x10(%rsp),%eax
  add    (%rsi,%rbx,4),%eax
  add    %eax,0x20(%rsp)
  jmp    L433
  nopl   0x0(%rax)
L293:
  mov    %r15d,%r10d
  mov    %r12d,%ebp
  mov    0x5c(%rsp),%r15d
  mov    %r13d,%r12d
  jmp    L363
L663:
  mov    %r12d,%ebp
  mov    %r15d,%r14d
L50:
  mov    0x8(%rsp),%rsi
  movslq %ebx,%rbx
  mov    0x20(%rsp),%eax
  add    (%rsi,%rbx,4),%eax
  add    %eax,0x34(%rsp)
  jmp    L202
L694:
  movl   $0x0,0x10(%rsp)
  jmp    L627
L523:
  xor    %r14d,%r14d
  jmp    L281
L12:
  mov    %ebp,%r13d
  mov    %r14d,%ebp
L780:
  mov    0x8(%rsp),%rdi
  movslq %ebx,%rbx
  mov    0x34(%rsp),%eax
  add    (%rdi,%rbx,4),%eax
  add    %eax,0x30(%rsp)
  jmp    L362
L730:
  movl   $0x0,0x20(%rsp)
  jmp    L50
L24:
  movl   $0x0,0x34(%rsp)
  jmp    L780
L676:
  movl   $0x0,0x2c(%rsp)
L313:
  movslq %ebx,%rbx
  mov    0x2c(%rsp),%eax
  add    0x0(%rbp,%rbx,4),%eax
  add    %eax,0x24(%rsp)
L117:
  mov    0x3c(%rsp),%r13d
  mov    0x68(%rsp),%ebx
  add    $0x1,%r13d
  add    $0x2,%ebx
  cmp    %r14d,%r13d
  jl     L435
  cmpb   $0x0,0x57(%rsp)
  jne    L614
L435:
  cmp    %r15d,%r13d
  jle    L453
  jmp    L562
L707:
  movl   $0x0,0x24(%rsp)
L614:
  movslq %ebx,%rbx
  mov    0x0(%rbp,%rbx,4),%edi
  add    %edi,0x24(%rsp)
L562:
  mov    0x24(%rsp),%eax
  add    $0x88,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L199:
  mov    %ebp,%r15d
  mov    0x8(%rsp),%rbp
  mov    %r13d,%r14d
L657:
  movslq %ebx,%rbx
  mov    0x30(%rsp),%eax
  add    0x0(%rbp,%rbx,4),%eax
  add    %eax,0x2c(%rsp)
  jmp    L317
L190:
  movl   $0x0,0x30(%rsp)
  jmp    L657
L197:
  movl   $0x0,0x24(%rsp)
  jmp    L562
```

assistant: ```c
int getSumUtil(int *st, int ss, int se, int qs, int qe, int si) {
  if (qs <= ss && qe >= se)
    return st[si];
  if (qe < ss || qs > se)
    return 0;
  int mid = getMid(ss, se);
  return getSumUtil(st, ss, mid, qs, qe, si * 2 + 1) + getSumUtil(st, mid + 1, se, qs, qe, si * 2 + 2);
}
```