user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<adjust>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x38,%rsp
  mov    %rdi,%rbx
  mov    %esi,0xc(%rsp)
  mov    %fs:0x28,%rax
  mov    %rax,0x28(%rsp)
  xor    %eax,%eax
  mov    $0x4,%esi
  mov    $0xe5,%edi
  call   <__CrestCall@plt>
  lea    0xc(%rsp),%r12
  mov    %r12,%rsi
  mov    $0xe4,%edi
  mov    $0x0,%eax
  call   <__CrestStore@plt>
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0xe6,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  lea    0x20(%rsp),%r14
  mov    %r14,%rsi
  mov    $0xe7,%edi
  mov    $0x0,%eax
  call   <__CrestStore@plt>
  movl   $0x0,0x20(%rsp)
  movslq (%rbx),%rdx
  mov    %rbx,%rsi
  mov    $0xe8,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  lea    0x24(%rsp),%r13
  mov    %r13,%rsi
  mov    $0xe9,%edi
  mov    $0x0,%eax
  call   <__CrestStore@plt>
  mov    (%rbx),%eax
  mov    %eax,0x24(%rsp)
  mov    $0x2,%edx
  mov    $0x0,%esi
  mov    $0xee,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  movslq 0x20(%rsp),%rdx
  mov    %r14,%rsi
  mov    $0xed,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0x20(%rsp),%eax
  lea    (%rax,%rax,1),%edx
  movslq %edx,%rdx
  mov    $0x2,%esi
  mov    $0xec,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    $0x1,%edx
  mov    $0x0,%esi
  mov    $0xeb,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0x20(%rsp),%eax
  lea    0x1(%rax,%rax,1),%edx
  movslq %edx,%rdx
  mov    $0x0,%esi
  mov    $0xea,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  lea    0x1c(%rsp),%rbp
  mov    %rbp,%rsi
  mov    $0xef,%edi
  mov    $0x0,%eax
  call   <__CrestStore@plt>
  mov    0x20(%rsp),%eax
  lea    0x1(%rax,%rax,1),%edx
  mov    %edx,0x1c(%rsp)
  movslq %edx,%rdx
  mov    %rbp,%rsi
  mov    $0xf4,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  movslq 0xc(%rsp),%rdx
  mov    %r12,%rsi
  mov    $0xf3,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    $0x1,%edx
  mov    $0x0,%esi
  mov    $0xf2,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0xc(%rsp),%eax
  lea    -0x1(%rax),%edx
  movslq %edx,%rdx
  mov    $0x1,%esi
  mov    $0xf1,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    0x1c(%rsp),%eax
  cmp    %eax,0xc(%rsp)
  setg   %dl
  movzbl %dl,%edx
  mov    $0xf,%esi
  mov    $0xf0,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    0x1c(%rsp),%eax
  cmp    %eax,0xc(%rsp)
  jle    L143
  mov    $0x1,%edx
  mov    $0x4b,%esi
  mov    $0xf5,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
  movslq 0x1c(%rsp),%rdx
  mov    %rbp,%rsi
  mov    $0xfd,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    $0x1,%edx
  mov    $0x0,%esi
  mov    $0xfc,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0x1c(%rsp),%eax
  lea    0x1(%rax),%edx
  movslq %edx,%rdx
  mov    $0x0,%esi
  mov    $0xfb,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  movslq 0xc(%rsp),%rdx
  mov    %r12,%rsi
  mov    $0xfa,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    $0x1,%edx
  mov    $0x0,%esi
  mov    $0xf9,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0xc(%rsp),%eax
  lea    -0x1(%rax),%edx
  movslq %edx,%rdx
  mov    $0x1,%esi
  mov    $0xf8,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    0xc(%rsp),%eax
  sub    $0x1,%eax
  cmp    0x1c(%rsp),%eax
  setg   %dl
  movzbl %dl,%edx
  mov    $0xf,%esi
  mov    $0xf7,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    0xc(%rsp),%eax
  sub    $0x1,%eax
  cmp    0x1c(%rsp),%eax
  jle    L117
  mov    $0x1,%edx
  mov    $0x4c,%esi
  mov    $0xfe,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
  movslq 0x1c(%rsp),%rax
  shl    $0x2,%rax
  lea    (%rbx,%rax,1),%r15
  lea    0x4(%rbx,%rax,1),%rax
  mov    %rax,(%rsp)
  movslq (%r15),%rdx
  mov    %r15,%rsi
  mov    $0x102,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    (%rsp),%rax
  movslq (%rax),%rdx
  mov    %rax,%rsi
  mov    $0x101,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    (%rsp),%rax
  mov    (%rax),%ecx
  cmp    %ecx,(%r15)
  setl   %dl
  movzbl %dl,%edx
  mov    $0x10,%esi
  mov    $0x100,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    (%rsp),%rax
  mov    (%rax),%eax
  cmp    %eax,(%r15)
  jge    L4
  mov    $0x1,%edx
  mov    $0x4f,%esi
  mov    $0x103,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
  movslq 0x1c(%rsp),%rdx
  mov    %rbp,%rsi
  mov    $0x107,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    $0x1,%edx
  mov    $0x0,%esi
  mov    $0x106,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0x1c(%rsp),%eax
  lea    0x1(%rax),%edx
  movslq %edx,%rdx
  mov    $0x0,%esi
  mov    $0x105,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    %rbp,%rsi
  mov    $0x108,%edi
  mov    $0x0,%eax
  call   <__CrestStore@plt>
  addl   $0x1,0x1c(%rsp)
  jmp    L32
L4:
  mov    $0x0,%edx
  mov    $0x50,%esi
  mov    $0x104,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
  jmp    L32
L117:
  mov    $0x0,%edx
  mov    $0x51,%esi
  mov    $0xff,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
L32:
  movslq 0x1c(%rsp),%rax
  lea    (%rbx,%rax,4),%r15
  movslq 0x24(%rsp),%rdx
  mov    %r13,%rsi
  mov    $0x10b,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  movslq (%r15),%rdx
  mov    %r15,%rsi
  mov    $0x10a,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0x24(%rsp),%eax
  cmp    %eax,(%r15)
  setg   %dl
  movzbl %dl,%edx
  mov    $0x10,%esi
  mov    $0x109,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    0x24(%rsp),%eax
  cmp    %eax,(%r15)
  jle    L159
  mov    $0x1,%edx
  mov    $0x55,%esi
  mov    $0x10c,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
  movslq 0x20(%rsp),%rax
  lea    (%rbx,%rax,4),%rax
  mov    %rax,(%rsp)
  movslq 0x1c(%rsp),%rax
  lea    (%rbx,%rax,4),%r15
  movslq (%r15),%rdx
  mov    %r15,%rsi
  mov    $0x10e,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    (%rsp),%rsi
  mov    $0x10f,%edi
  mov    $0x0,%eax
  call   <__CrestStore@plt>
  mov    (%r15),%eax
  mov    (%rsp),%rcx
  mov    %eax,(%rcx)
  movslq 0x1c(%rsp),%rdx
  mov    %rbp,%rsi
  mov    $0x110,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    %r14,%rsi
  mov    $0x111,%edi
  mov    $0x0,%eax
  call   <__CrestStore@plt>
  mov    0x1c(%rsp),%eax
  mov    %eax,0x20(%rsp)
  mov    $0x2,%edx
  mov    $0x0,%esi
  mov    $0x116,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  movslq 0x20(%rsp),%rdx
  mov    %r14,%rsi
  mov    $0x115,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0x20(%rsp),%eax
  lea    (%rax,%rax,1),%edx
  movslq %edx,%rdx
  mov    $0x2,%esi
  mov    $0x114,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    $0x1,%edx
  mov    $0x0,%esi
  mov    $0x113,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0x20(%rsp),%eax
  lea    0x1(%rax,%rax,1),%edx
  movslq %edx,%rdx
  mov    $0x0,%esi
  mov    $0x112,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    %rbp,%rsi
  mov    $0x117,%edi
  mov    $0x0,%eax
  call   <__CrestStore@plt>
  mov    0x20(%rsp),%eax
  lea    0x1(%rax,%rax,1),%eax
  mov    %eax,0x1c(%rsp)
  jmp    L83
L159:
  mov    $0x0,%edx
  mov    $0x56,%esi
  mov    $0x10d,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
  movslq 0xc(%rsp),%rdx
  mov    %r12,%rsi
  mov    $0x118,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    %rbp,%rsi
  mov    $0x119,%edi
  mov    $0x0,%eax
  call   <__CrestStore@plt>
  mov    0xc(%rsp),%eax
  mov    %eax,0x1c(%rsp)
  jmp    L83
L143:
  mov    $0x0,%edx
  mov    $0x57,%esi
  mov    $0xf6,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
L83:
  movslq 0x1c(%rsp),%rdx
  mov    %rbp,%rsi
  mov    $0x11e,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  movslq 0xc(%rsp),%rdx
  mov    %r12,%rsi
  mov    $0x11d,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    $0x1,%edx
  mov    $0x0,%esi
  mov    $0x11c,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0xc(%rsp),%eax
  lea    -0x1(%rax),%edx
  movslq %edx,%rdx
  mov    $0x1,%esi
  mov    $0x11b,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    0x1c(%rsp),%eax
  cmp    %eax,0xc(%rsp)
  setg   %dl
  movzbl %dl,%edx
  mov    $0xf,%esi
  mov    $0x11a,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    0x1c(%rsp),%eax
  cmp    %eax,0xc(%rsp)
  jle    L136
  mov    $0x1,%edx
  mov    $0x59,%esi
  mov    $0x11f,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
  movslq 0x1c(%rsp),%rdx
  mov    %rbp,%rsi
  mov    $0x127,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    $0x1,%edx
  mov    $0x0,%esi
  mov    $0x126,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0x1c(%rsp),%eax
  lea    0x1(%rax),%edx
  movslq %edx,%rdx
  mov    $0x0,%esi
  mov    $0x125,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  movslq 0xc(%rsp),%rdx
  mov    %r12,%rsi
  mov    $0x124,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    $0x1,%edx
  mov    $0x0,%esi
  mov    $0x123,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0xc(%rsp),%eax
  lea    -0x1(%rax),%edx
  movslq %edx,%rdx
  mov    $0x1,%esi
  mov    $0x122,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    0xc(%rsp),%eax
  sub    $0x1,%eax
  cmp    0x1c(%rsp),%eax
  setg   %dl
  movzbl %dl,%edx
  mov    $0xf,%esi
  mov    $0x121,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    0xc(%rsp),%eax
  sub    $0x1,%eax
  cmp    0x1c(%rsp),%eax
  jle    L40
  mov    $0x1,%edx
  mov    $0x5a,%esi
  mov    $0x128,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
  movslq 0x1c(%rsp),%rax
  shl    $0x2,%rax
  lea    (%rbx,%rax,1),%r15
  lea    0x4(%rbx,%rax,1),%rax
  mov    %rax,(%rsp)
  movslq (%r15),%rdx
  mov    %r15,%rsi
  mov    $0x12c,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    (%rsp),%rax
  movslq (%rax),%rdx
  mov    %rax,%rsi
  mov    $0x12b,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    (%rsp),%rax
  mov    (%rax),%ecx
  cmp    %ecx,(%r15)
  setl   %dl
  movzbl %dl,%edx
  mov    $0x10,%esi
  mov    $0x12a,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    (%rsp),%rax
  mov    (%rax),%eax
  cmp    %eax,(%r15)
  jge    L11
  mov    $0x1,%edx
  mov    $0x5d,%esi
  mov    $0x12d,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
  movslq 0x1c(%rsp),%rdx
  mov    %rbp,%rsi
  mov    $0x131,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    $0x1,%edx
  mov    $0x0,%esi
  mov    $0x130,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0x1c(%rsp),%eax
  lea    0x1(%rax),%edx
  movslq %edx,%rdx
  mov    $0x0,%esi
  mov    $0x12f,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    %rbp,%rsi
  mov    $0x132,%edi
  mov    $0x0,%eax
  call   <__CrestStore@plt>
  addl   $0x1,0x1c(%rsp)
  jmp    L168
L11:
  mov    $0x0,%edx
  mov    $0x5e,%esi
  mov    $0x12e,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
  jmp    L168
L40:
  mov    $0x0,%edx
  mov    $0x5f,%esi
  mov    $0x129,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
L168:
  movslq 0x1c(%rsp),%rax
  lea    (%rbx,%rax,4),%r15
  movslq 0x24(%rsp),%rdx
  mov    %r13,%rsi
  mov    $0x135,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  movslq (%r15),%rdx
  mov    %r15,%rsi
  mov    $0x134,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0x24(%rsp),%eax
  cmp    %eax,(%r15)
  setg   %dl
  movzbl %dl,%edx
  mov    $0x10,%esi
  mov    $0x133,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    0x24(%rsp),%eax
  cmp    %eax,(%r15)
  jle    L19
  mov    $0x1,%edx
  mov    $0x63,%esi
  mov    $0x136,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
  movslq 0x20(%rsp),%rax
  lea    (%rbx,%rax,4),%r15
  movslq 0x1c(%rsp),%rax
  lea    (%rbx,%rax,4),%r12
  movslq (%r12),%rdx
  mov    %r12,%rsi
  mov    $0x138,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    %r15,%rsi
  mov    $0x139,%edi
  mov    $0x0,%eax
  call   <__CrestStore@plt>
  mov    (%r12),%eax
  mov    %eax,(%r15)
  movslq 0x1c(%rsp),%rdx
  mov    %rbp,%rsi
  mov    $0x13a,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    %r14,%rsi
  mov    $0x13b,%edi
  mov    $0x0,%eax
  call   <__CrestStore@plt>
  mov    0x1c(%rsp),%eax
  mov    %eax,0x20(%rsp)
  mov    $0x2,%edx
  mov    $0x0,%esi
  mov    $0x140,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  movslq 0x20(%rsp),%rdx
  mov    %r14,%rsi
  mov    $0x13f,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0x20(%rsp),%eax
  lea    (%rax,%rax,1),%edx
  movslq %edx,%rdx
  mov    $0x2,%esi
  mov    $0x13e,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    $0x1,%edx
  mov    $0x0,%esi
  mov    $0x13d,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    0x20(%rsp),%eax
  lea    0x1(%rax,%rax,1),%edx
  movslq %edx,%rdx
  mov    $0x0,%esi
  mov    $0x13c,%edi
  mov    $0x0,%eax
  call   <__CrestApply2@plt>
  mov    %rbp,%rsi
  mov    $0x141,%edi
  mov    $0x0,%eax
  call   <__CrestStore@plt>
  mov    0x20(%rsp),%eax
  lea    0x1(%rax,%rax,1),%eax
  mov    %eax,0x1c(%rsp)
  jmp    L98
L19:
  mov    $0x0,%edx
  mov    $0x64,%esi
  mov    $0x137,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
  movslq 0xc(%rsp),%rdx
  mov    %r12,%rsi
  mov    $0x142,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    %rbp,%rsi
  mov    $0x143,%edi
  mov    $0x0,%eax
  call   <__CrestStore@plt>
  mov    0xc(%rsp),%eax
  mov    %eax,0x1c(%rsp)
  jmp    L98
L136:
  mov    $0x0,%edx
  mov    $0x65,%esi
  mov    $0x120,%edi
  mov    $0x0,%eax
  call   <__CrestBranch@plt>
L98:
  movslq 0x20(%rsp),%rax
  lea    (%rbx,%rax,4),%rbx
  movslq 0x24(%rsp),%rdx
  mov    %r13,%rsi
  mov    $0x144,%edi
  mov    $0x0,%eax
  call   <__CrestLoad@plt>
  mov    %rbx,%rsi
  mov    $0x145,%edi
  mov    $0x0,%eax
  call   <__CrestStore@plt>
  mov    0x24(%rsp),%eax
  mov    %eax,(%rbx)
  mov    $0x146,%edi
  mov    $0x0,%eax
  call   <__CrestReturn@plt>
  mov    0x28(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L165
  add    $0x38,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L165:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
void adjust(int *a, int n) {
  int i;
  int j;
  int item;
  int *mem_6;
  int *mem_7;
  int *mem_8;
  int *mem_9;
  int *mem_10;
  int *mem_11;
  int *mem_12;
  int *mem_13;
  int *mem_14;
  int *mem_15;
  int *mem_16;
  int *mem_17;
  {
    __CrestCall(229, 4);
    __CrestStore(228, (unsigned long)(&n));
    __CrestLoad(230, (unsigned long)0, (long long)0);
    __CrestStore(231, (unsigned long)(&j));
    j = 0;
    mem_6 = a + j;
    __CrestLoad(232, (unsigned long)mem_6, (long long)*mem_6);
    __CrestStore(233, (unsigned long)(&item));
    item = *mem_6;
    __CrestLoad(238, (unsigned long)0, (long long)2);
    __CrestLoad(237, (unsigned long)(&j), (long long)j);
    __CrestApply2(236, 2, (long long)(2 * j));
    __CrestLoad(235, (unsigned long)0, (long long)1);
    __CrestApply2(234, 0, (long long)(2 * j + 1));
    __CrestStore(239, (unsigned long)(&i));
    i = 2 * j + 1;
    {
      {
        __CrestLoad(244, (unsigned long)(&i), (long long)i);
        __CrestLoad(243, (unsigned long)(&n), (long long)n);
        __CrestLoad(242, (unsigned long)0, (long long)1);
        __CrestApply2(241, 1, (long long)(n - 1));
        __CrestApply2(240, 15, (long long)(i <= n - 1));
        if (i <= n - 1) {
          __CrestBranch(245, 75, 1);
          {
            __CrestLoad(253, (unsigned long)(&i), (long long)i);
            __CrestLoad(252, (unsigned long)0, (long long)1);
            __CrestApply2(251, 0, (long long)(i + 1));
            __CrestLoad(250, (unsigned long)(&n), (long long)n);
            __CrestLoad(249, (unsigned long)0, (long long)1);
            __CrestApply2(248, 1, (long long)(n - 1));
            __CrestApply2(247, 15, (long long)(i + 1 <= n - 1));
            if (i + 1 <= n - 1) {
              __CrestBranch(254, 76, 1);
              {
                mem_7 = a + i;
                mem_8 = a + (i + 1);
                {
                  __CrestLoad(258, (unsigned long)mem_7, (long long)*mem_7);
                  __CrestLoad(257, (unsigned long)mem_8, (long long)*mem_8);
                  __CrestApply2(256, 16, (long long)(*mem_7 < *mem_8));
                  if (*mem_7 < *mem_8) {
                    __CrestBranch(259, 79, 1);
                    __CrestLoad(263, (unsigned long)(&i), (long long)i);
                    __CrestLoad(262, (unsigned long)0, (long long)1);
                    __CrestApply2(261, 0, (long long)(i + 1));
                    __CrestStore(264, (unsigned long)(&i));
                    i++;
                  } else {
                    __CrestBranch(260, 80, 0);
                  }
                }
              }
            } else {
              __CrestBranch(255, 81, 0);
            }
          }
          {
            mem_9 = a + i;
            {
              __CrestLoad(267, (unsigned long)(&item), (long long)item);
              __CrestLoad(266, (unsigned long)mem_9, (long long)*mem_9);
              __CrestApply2(265, 16, (long long)(item < *mem_9));
              if (item < *mem_9) {
                __CrestBranch(268, 85, 1);
                mem_10 = a + j;
                mem_11 = a + i;
                __CrestLoad(270, (unsigned long)mem_11, (long long)*mem_11);
                __CrestStore(271, (unsigned long)mem_10);
                *mem_10 = *mem_11;
                __CrestLoad(272, (unsigned long)(&i), (long long)i);
                __CrestStore(273, (unsigned long)(&j));
                j = i;
                __CrestLoad(278, (unsigned long)0, (long long)2);
                __CrestLoad(277, (unsigned long)(&j), (long long)j);
                __CrestApply2(276, 2, (long long)(2 * j));
                __CrestLoad(275, (unsigned long)0, (long long)1);
                __CrestApply2(274, 0, (long long)(2 * j + 1));
                __CrestStore(279, (unsigned long)(&i));
                i = 2 * j + 1;
              } else {
                __CrestBranch(269, 86, 0);
                __CrestLoad(280, (unsigned long)(&n), (long long)n);
                __CrestStore(281, (unsigned long)(&i));
                i = n;
              }
            }
          }
        } else {
          __CrestBranch(246, 87, 0);
        }
      }
      {
        __CrestLoad(286, (unsigned long)(&i), (long long)i);
        __CrestLoad(285, (unsigned long)(&n), (long long)n);
        __CrestLoad(284, (unsigned long)0, (long long)1);
        __CrestApply2(283, 1, (long long)(n - 1));
        __CrestApply2(282, 15, (long long)(i <= n - 1));
        if (i <= n - 1) {
          __CrestBranch(287, 89, 1);
          {
            __CrestLoad(295, (unsigned long)(&i), (long long)i);
            __CrestLoad(294, (unsigned long)0, (long long)1);
            __CrestApply2(293, 0, (long long)(i + 1));
            __CrestLoad(292, (unsigned long)(&n), (long long)n);
            __CrestLoad(291, (unsigned long)0, (long long)1);
            __CrestApply2(290, 1, (long long)(n - 1));
            __CrestApply2(289, 15, (long long)(i + 1 <= n - 1));
            if (i + 1 <= n - 1) {
              __CrestBranch(296, 90, 1);
              {
                mem_12 = a + i;
                mem_13 = a + (i + 1);
                {
                  __CrestLoad(300, (unsigned long)mem_12, (long long)*mem_12);
                  __CrestLoad(299, (unsigned long)mem_13, (long long)*mem_13);
                  __CrestApply2(298, 16, (long long)(*mem_12 < *mem_13));
                  if (*mem_12 < *mem_13) {
                    __CrestBranch(301, 93, 1);
                    __CrestLoad(305, (unsigned long)(&i), (long long)i);
                    __CrestLoad(304, (unsigned long)0, (long long)1);
                    __CrestApply2(303, 0, (long long)(i + 1));
                    __CrestStore(306, (unsigned long)(&i));
                    i++;
                  } else {
                    __CrestBranch(302, 94, 0);
                  }
                }
              }
            } else {
              __CrestBranch(297, 95, 0);
            }
          }
          {
            mem_14 = a + i;
            {
              __CrestLoad(309, (unsigned long)(&item), (long long)item);
              __CrestLoad(308, (unsigned long)mem_14, (long long)*mem_14);
              __CrestApply2(307, 16, (long long)(item < *mem_14));
              if (item < *mem_14) {
                __CrestBranch(310, 99, 1);
                mem_15 = a + j;
                mem_16 = a + i;
                __CrestLoad(312, (unsigned long)mem_16, (long long)*mem_16);
                __CrestStore(313, (unsigned long)mem_15);
                *mem_15 = *mem_16;
                __CrestLoad(314, (unsigned long)(&i), (long long)i);
                __CrestStore(315, (unsigned long)(&j));
                j = i;
                __CrestLoad(320, (unsigned long)0, (long long)2);
                __CrestLoad(319, (unsigned long)(&j), (long long)j);
                __CrestApply2(318, 2, (long long)(2 * j));
                __CrestLoad(317, (unsigned long)0, (long long)1);
                __CrestApply2(316, 0, (long long)(2 * j + 1));
                __CrestStore(321, (unsigned long)(&i));
                i = 2 * j + 1;
              } else {
                __CrestBranch(311, 100, 0);
                __CrestLoad(322, (unsigned long)(&n), (long long)n);
                __CrestStore(323, (unsigned long)(&i));
                i = n;
              }
            }
          }
        } else {
          __CrestBranch(288, 101, 0);
        }
      }
    }
    mem_17 = a + j;
    __CrestLoad(324, (unsigned long)(&item), (long long)item);
    __CrestStore(325, (unsigned long)mem_17);
    *mem_17 = item;
    {
      __CrestReturn(326);
      return;
    }
  }
}
```