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

```asm
<asg_pstep3d>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x98,%rsp
  mov    %rsi,0x30(%rsp)
  mov    0xf0(%rsp),%rax
  mov    0xf8(%rsp),%rbx
  mov    0x100(%rsp),%rsi
  mov    %rcx,0x28(%rsp)
  mov    0x8(%rax),%eax
  mov    %rdi,0x58(%rsp)
  mov    0x8(%rbx),%ebx
  mov    (%rsi),%ecx
  mov    %rdx,0x38(%rsp)
  mov    %r8,0x10(%rsp)
  mov    0xe8(%rsp),%r13
  mov    %r9,0x18(%rsp)
  mov    0x118(%rsp),%rbp
  mov    %eax,0x88(%rsp)
  mov    %ebx,0x64(%rsp)
  mov    %ecx,0x8c(%rsp)
  cmp    %ebx,%eax
  jg     L153
  mov    0xf0(%rsp),%rbx
  mov    0xf8(%rsp),%rsi
  movslq %eax,%r12
  mov    %r12,0x70(%rsp)
  mov    0x4(%rbx),%ebx
  mov    0x4(%rsi),%esi
  movslq %ebx,%rax
  mov    %ebx,0x68(%rsp)
  mov    %rax,0x78(%rsp)
  shl    $0x2,%rax
  mov    %rax,0x80(%rsp)
  lea    0x1(%rsi),%eax
  mov    %esi,0x6c(%rsp)
  mov    %eax,0x60(%rsp)
L412:
  mov    0x68(%rsp),%ebx
  cmp    %ebx,0x6c(%rsp)
  jl     L287
  mov    0xf0(%rsp),%rax
  mov    (%rax),%edi
  mov    0xf8(%rsp),%rax
  mov    (%rax),%ebx
  lea    0x0(,%r12,4),%rax
  mov    %edi,0x4(%rsp)
  mov    %rax,0x48(%rsp)
  mov    %ebx,%eax
  sub    %edi,%eax
  lea    0x4(,%rax,4),%rax
  mov    %rax,0x50(%rsp)
  movslq %edi,%rax
  mov    %rax,0x8(%rsp)
  lea    0x0(%r13,%rax,4),%rax
  mov    %rax,0x40(%rsp)
  mov    0x80(%rsp),%rax
  mov    %rax,0x20(%rsp)
  mov    0x68(%rsp),%eax
  mov    %eax,(%rsp)
  nopl   0x0(%rax,%rax,1)
L300:
  cmp    0x4(%rsp),%ebx
  jl     L148
  mov    0x50(%rsp),%rdx
  mov    0x40(%rsp),%rdi
  xor    %esi,%esi
  call   <memset@plt>
  mov    0x110(%rsp),%r14d
  test   %r14d,%r14d
  jle    L68
L573:
  mov    0x20(%rsp),%rax
  xor    %r14d,%r14d
  xor    %r11d,%r11d
  xor    %r10d,%r10d
  lea    (%rax,%rax,1),%r15
  xchg   %ax,%ax
L62:
  cmp    0x4(%rsp),%ebx
  jl     L34
  mov    0x0(%rbp),%rax
  mov    (%rsp),%edi
  mov    0xd0(%rsp),%rsi
  movss  (%rax,%r11,1),%xmm4
  mov    0x10(%rsp),%rax
  mov    (%rax,%r12,8),%rax
  mov    (%rax,%r15,1),%rdx
  mov    0x8(%rbp),%rax
  movss  (%rax,%r11,1),%xmm3
  mov    0x18(%rsp),%rax
  mov    (%rax,%r12,8),%rcx
  lea    (%rdi,%r10,1),%eax
  cltq
  mov    (%rcx,%rax,8),%r9
  mov    %edi,%eax
  sub    %r10d,%eax
  cltq
  mov    -0x8(%rcx,%rax,8),%r8
  mov    0x10(%rbp),%rax
  lea    (%rdx,%r11,1),%rcx
  add    %r14,%rdx
  movss  (%rax,%r11,1),%xmm2
  lea    (%r10,%r12,1),%eax
  cltq
  mov    (%rsi,%rax,8),%rax
  mov    (%rax,%r15,1),%rdi
  mov    %r12d,%eax
  sub    %r10d,%eax
  cltq
  mov    -0x8(%rsi,%rax,8),%rax
  mov    (%rax,%r15,1),%rsi
  mov    0x8(%rsp),%rax
  nopw   0x0(%rax,%rax,1)
L195:
  movss  (%rcx,%rax,4),%xmm0
  movss  (%r9,%rax,4),%xmm1
  subss  -0x4(%rdx,%rax,4),%xmm0
  subss  (%r8,%rax,4),%xmm1
  mulss  %xmm4,%xmm0
  mulss  %xmm3,%xmm1
  addss  %xmm1,%xmm0
  movss  (%rdi,%rax,4),%xmm1
  subss  (%rsi,%rax,4),%xmm1
  mulss  %xmm2,%xmm1
  addss  %xmm1,%xmm0
  addss  0x0(%r13,%rax,4),%xmm0
  movss  %xmm0,0x0(%r13,%rax,4)
  add    $0x1,%rax
  cmp    %eax,%ebx
  jge    L195
L34:
  add    $0x1,%r10d
  add    $0x4,%r11
  sub    $0x4,%r14
  cmp    %r10d,0x110(%rsp)
  jne    L62
  cmp    0x4(%rsp),%ebx
  jl     L349
L68:
  mov    0x30(%rsp),%rax
  mov    0x20(%rsp),%rcx
  mov    0xd8(%rsp),%r8
  mov    (%rax,%r12,8),%rax
  mov    0x10(%r8),%r9
  mov    0xe0(%rsp),%r8
  mov    (%rax,%rcx,2),%rdi
  mov    0xd8(%rsp),%rax
  mov    (%rax),%r15
  mov    0x58(%rsp),%rax
  mov    (%rax,%r12,8),%rax
  mov    (%rax,%rcx,2),%rdx
  mov    0xe0(%rsp),%rax
  mov    (%rax),%r14
  mov    0x38(%rsp),%rax
  mov    (%rax,%r12,8),%rax
  mov    (%rax,%rcx,2),%rsi
  mov    0xd8(%rsp),%rax
  mov    0x8(%rax),%r11
  mov    0xe0(%rsp),%rax
  mov    0x8(%rax),%r10
  mov    0x28(%rsp),%rax
  add    %rcx,%r11
  mov    (%rax,%r12,8),%rax
  add    %rcx,%r10
  mov    (%rax,%rcx,2),%rcx
  mov    0x48(%rsp),%rax
  add    %rax,%r9
  add    0x10(%r8),%rax
  mov    %rax,%r8
  mov    0x8(%rsp),%rax
  nopl   0x0(%rax)
L155:
  movss  (%rdx,%rax,4),%xmm2
  movss  0x0(%r13,%rax,4),%xmm1
  movss  (%rdi,%rax,4),%xmm0
  mulss  (%r15,%rax,4),%xmm0
  mulss  %xmm1,%xmm2
  subss  %xmm2,%xmm0
  mulss  (%r14,%rax,4),%xmm0
  movss  %xmm0,(%rdi,%rax,4)
  movss  (%rdx,%rax,4),%xmm2
  movss  (%rsi,%rax,4),%xmm0
  mulss  (%r11),%xmm0
  mulss  %xmm1,%xmm2
  subss  %xmm2,%xmm0
  mulss  (%r10),%xmm0
  movss  %xmm0,(%rsi,%rax,4)
  mulss  (%rdx,%rax,4),%xmm1
  movss  (%rcx,%rax,4),%xmm0
  mulss  (%r9),%xmm0
  subss  %xmm1,%xmm0
  mulss  (%r8),%xmm0
  movss  %xmm0,(%rcx,%rax,4)
  add    $0x1,%rax
  cmp    %eax,%ebx
  jge    L155
L349:
  addl   $0x1,(%rsp)
  mov    (%rsp),%eax
  addq   $0x4,0x20(%rsp)
  cmp    %eax,0x60(%rsp)
  jne    L300
L287:
  add    $0x1,%r12
  cmp    %r12d,0x64(%rsp)
  jge    L412
  mov    0x8c(%rsp),%r9d
  test   %r9d,%r9d
  jne    L119
  mov    0x108(%rsp),%rax
  mov    (%rax),%edi
  test   %edi,%edi
  je     L305
  mov    0xf8(%rsp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,0x6c(%rsp)
  mov    0xf0(%rsp),%rax
  movslq 0x4(%rax),%rax
  mov    %eax,0x68(%rsp)
  mov    %rax,0x78(%rsp)
L558:
  mov    0x78(%rsp),%rsi
  mov    0x6c(%rsp),%eax
  movss  D9(%rip),%xmm1
  sub    0x68(%rsp),%eax
  mov    0x70(%rsp),%r11
  lea    0x1(%rax,%rsi,1),%rax
  mov    0x30(%rsp),%r14
  lea    0x0(,%rsi,8),%rbx
  lea    0x0(,%rax,8),%r12
  mov    0x110(%rsp),%eax
  lea    -0x2(%rax),%ebp
  mov    %eax,%r13d
L354:
  mov    0x68(%rsp),%esi
  cmp    %esi,0x6c(%rsp)
  jl     L545
  mov    0xf8(%rsp),%rax
  mov    (%r14,%r11,8),%rdi
  movslq (%rax),%rax
  lea    (%rdi,%rbx,1),%rsi
  add    %r12,%rdi
  lea    0x1(%rax,%rbp,1),%r8
  lea    0x4(,%rax,4),%r10
  lea    0x0(,%rax,4),%r9
  shl    $0x2,%r8
L392:
  mov    (%rsi),%rcx
  lea    (%rcx,%r9,1),%rdx
  movl   $0x0,(%rcx,%r10,1)
  add    %r8,%rcx
  mov    %rdx,%rax
  cmp    $0x1,%r13d
  jle    L511
  nopw   0x0(%rax,%rax,1)
L291:
  movss  (%rdx),%xmm0
  add    $0x4,%rax
  sub    $0x4,%rdx
  xorps  %xmm1,%xmm0
  movss  %xmm0,0x4(%rax)
  cmp    %rax,%rcx
  jne    L291
L511:
  add    $0x8,%rsi
  cmp    %rsi,%rdi
  jne    L392
L545:
  add    $0x1,%r11
  cmp    %r11d,0x64(%rsp)
  jge    L354
  mov    0x100(%rsp),%rax
  mov    0x4(%rax),%r11d
  test   %r11d,%r11d
  jne    L71
L54:
  mov    0x108(%rsp),%rax
  mov    0x4(%rax),%ebp
  test   %ebp,%ebp
  jne    L118
L274:
  mov    0x108(%rsp),%rax
  mov    0x8(%rax),%r15d
  mov    0x100(%rsp),%rax
  mov    0x8(%rax),%r12d
  test   %r12d,%r12d
  je     L96
  mov    0xf0(%rsp),%rax
  mov    0x4(%rax),%edx
  mov    0xf8(%rsp),%rax
  mov    0x4(%rax),%ebx
  cmp    %ebx,%edx
  jg     L211
  mov    0x28(%rsp),%r11
  movslq 0x88(%rsp),%rcx
  mov    %ebx,%r8d
  movslq %edx,%r10
  mov    0xf0(%rsp),%rax
  sub    %edx,%r8d
  lea    0x0(,%r10,8),%rdi
  movss  D9(%rip),%xmm1
  lea    0x0(,%rcx,8),%rsi
  mov    %r11,%r14
  lea    0x1(%r8,%r10,1),%rdx
  mov    -0x8(%r11,%rsi,1),%rbp
  add    %rsi,%r14
  movslq (%rax),%rax
  lea    0x8(%r11),%r12
  mov    0x110(%rsp),%esi
  lea    0x0(,%rdx,8),%r13
  shl    $0x2,%rax
  lea    -0x2(%rsi),%edx
  mov    %rdx,%rsi
  add    %rcx,%rdx
  lea    (%r12,%rdx,8),%r11
L352:
  mov    0x0(%rbp,%rdi,1),%rdx
  cmpl   $0x1,0x110(%rsp)
  mov    %r14,%rcx
  movl   $0x0,(%rdx,%rax,1)
  mov    %r14,%rdx
  jle    L437
L84:
  mov    (%rdx),%r9
  mov    -0x10(%rcx),%r8
  add    $0x8,%rdx
  sub    $0x8,%rcx
  mov    (%r9,%rdi,1),%r9
  mov    (%r8,%rdi,1),%r8
  movss  (%r9,%rax,1),%xmm0
  xorps  %xmm1,%xmm0
  movss  %xmm0,(%r8,%rax,1)
  cmp    %rdx,%r11
  jne    L84
L437:
  add    $0x8,%rdi
  cmp    %rdi,%r13
  jne    L352
  test   %r15d,%r15d
  je     L211
L386:
  movslq 0x64(%rsp),%rcx
  mov    0x28(%rsp),%rdi
  movss  D9(%rip),%xmm1
  lea    0x1(%rcx),%rdx
  mov    (%rdi,%rdx,8),%r9
  lea    -0x8(%rdi,%rdx,8),%r11
  mov    %esi,%edx
  add    %rcx,%rdx
  lea    (%r12,%rdx,8),%rbp
L273:
  mov    (%r9,%r10,8),%rdx
  cmpl   $0x1,0x110(%rsp)
  lea    0x0(,%r10,8),%rsi
  mov    %r11,%rcx
  movl   $0x0,(%rdx,%rax,1)
  mov    %r11,%rdx
  jle    L427
L225:
  mov    (%rcx),%r8
  mov    0x10(%rdx),%rdi
  add    $0x8,%rdx
  sub    $0x8,%rcx
  mov    (%r8,%rsi,1),%r8
  mov    (%rdi,%rsi,1),%rdi
  movss  (%r8,%rax,1),%xmm0
  xorps  %xmm1,%xmm0
  movss  %xmm0,(%rdi,%rax,1)
  cmp    %rbp,%rdx
  jne    L225
L427:
  add    $0x1,%r10
  cmp    %r10d,%ebx
  jge    L273
L211:
  add    $0x98,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L148:
  mov    0x110(%rsp),%esi
  test   %esi,%esi
  jg     L573
  jmp    L349
L119:
  mov    0x30(%rsp),%rbx
  mov    0x70(%rsp),%rdi
  movss  D9(%rip),%xmm1
  mov    0x64(%rsp),%eax
  sub    0x88(%rsp),%eax
  add    %rdi,%rax
  lea    (%rbx,%rdi,8),%r11
  mov    0x78(%rsp),%rdi
  lea    0x8(%rbx,%rax,8),%r12
  mov    0x6c(%rsp),%eax
  sub    0x68(%rsp),%eax
  lea    0x1(%rax,%rdi,1),%rax
  lea    0x0(,%rdi,8),%rbx
  lea    0x0(,%rax,8),%r13
  mov    0x110(%rsp),%eax
  lea    -0x2(%rax),%ebp
  mov    %eax,%r14d
L329:
  mov    0x68(%rsp),%ecx
  cmp    %ecx,0x6c(%rsp)
  jl     L275
  mov    0xf0(%rsp),%rax
  mov    (%r11),%rdi
  movslq (%rax),%rax
  lea    (%rdi,%rbx,1),%rsi
  add    %r13,%rdi
  lea    0x0(,%rax,4),%r9
  lea    0x1(%rax,%rbp,1),%r8
  lea    -0x4(%r9),%r10
  shl    $0x2,%r8
L293:
  mov    (%rsi),%rcx
  lea    (%rcx,%r9,1),%rax
  movl   $0x0,(%rcx,%r10,1)
  add    %r8,%rcx
  mov    %rax,%rdx
  cmp    $0x1,%r14d
  jle    L309
  nopl   (%rax)
L110:
  movss  (%rax),%xmm0
  add    $0x4,%rax
  sub    $0x4,%rdx
  xorps  %xmm1,%xmm0
  movss  %xmm0,-0x4(%rdx)
  cmp    %rax,%rcx
  jne    L110
L309:
  add    $0x8,%rsi
  cmp    %rsi,%rdi
  jne    L293
L275:
  add    $0x8,%r11
  cmp    %r11,%r12
  jne    L329
  mov    0x108(%rsp),%rax
  mov    (%rax),%r10d
  test   %r10d,%r10d
  jne    L558
  mov    0x100(%rsp),%rax
  mov    0x4(%rax),%r8d
  test   %r8d,%r8d
  je     L423
L120:
  mov    0xf0(%rsp),%rax
  movslq 0x4(%rax),%rax
  mov    %rax,0x78(%rsp)
L71:
  mov    0x110(%rsp),%esi
  mov    0xf0(%rsp),%rax
  movss  D9(%rip),%xmm1
  mov    0x78(%rsp),%rdi
  mov    0x70(%rsp),%r10
  lea    -0x2(%rsi),%edx
  movslq (%rax),%rax
  mov    0x38(%rsp),%r12
  lea    0x0(,%rdi,8),%r11
  mov    %rdx,%rsi
  lea    0x1(%rdx,%rdi,1),%rdx
  lea    -0x8(%r11),%rbx
  shl    $0x2,%rax
  lea    0x0(,%rdx,8),%rbp
L136:
  mov    (%r12,%r10,8),%r9
  mov    (%r9,%rbx,1),%rdx
  movl   $0x0,(%rdx,%rax,1)
  lea    (%r9,%r11,1),%rdx
  add    %rbp,%r9
  cmpl   $0x1,0x110(%rsp)
  mov    %rdx,%rcx
  jle    L69
L394:
  mov    (%rdx),%r8
  mov    -0x10(%rcx),%rdi
  add    $0x8,%rdx
  sub    $0x8,%rcx
  movss  (%r8,%rax,1),%xmm0
  xorps  %xmm1,%xmm0
  movss  %xmm0,(%rdi,%rax,1)
  cmp    %rdx,%r9
  jne    L394
L69:
  add    $0x1,%r10
  cmp    %r10d,0x64(%rsp)
  jge    L136
  mov    0x108(%rsp),%rbx
  mov    0x4(%rbx),%ebx
  test   %ebx,%ebx
  je     L274
L367:
  mov    0xf8(%rsp),%rbx
  mov    0x70(%rsp),%r8
  movss  D9(%rip),%xmm1
  mov    0x38(%rsp),%rbp
  movslq 0x4(%rbx),%rdx
  lea    0x8(,%rdx,8),%r10
  lea    0x0(,%rdx,8),%r11
  lea    0x1(%rdx,%rsi,1),%rdx
  lea    0x0(,%rdx,8),%rbx
L140:
  mov    0x0(%rbp,%r8,8),%r9
  mov    (%r9,%r10,1),%rdx
  lea    (%r9,%r11,1),%rcx
  add    %rbx,%r9
  cmpl   $0x1,0x110(%rsp)
  movl   $0x0,(%rdx,%rax,1)
  mov    %rcx,%rdx
  jle    L557
L307:
  mov    (%rcx),%rdi
  mov    0x10(%rdx),%rsi
  add    $0x8,%rdx
  sub    $0x8,%rcx
  movss  (%rdi,%rax,1),%xmm0
  xorps  %xmm1,%xmm0
  movss  %xmm0,(%rsi,%rax,1)
  cmp    %rdx,%r9
  jne    L307
L557:
  add    $0x1,%r8
  cmp    %r8d,0x64(%rsp)
  jge    L140
  jmp    L274
L96:
  test   %r15d,%r15d
  je     L211
  mov    0xf0(%rsp),%rax
  mov    0x4(%rax),%edx
  mov    0xf8(%rsp),%rax
  mov    0x4(%rax),%ebx
  cmp    %ebx,%edx
  jg     L211
  mov    0xf0(%rsp),%rax
  mov    0x110(%rsp),%ecx
  movslq %edx,%r10
  mov    0x28(%rsp),%rdi
  movslq (%rax),%rax
  lea    -0x2(%rcx),%esi
  lea    0x8(%rdi),%r12
  shl    $0x2,%rax
  jmp    L386
L305:
  mov    0x100(%rsp),%rax
  mov    0x4(%rax),%edx
  test   %edx,%edx
  jne    L120
  mov    0x108(%rsp),%rax
  mov    0x4(%rax),%ebp
  test   %ebp,%ebp
  je     L274
L118:
  movslq 0x88(%rsp),%rax
  mov    0x64(%rsp),%ebx
  cmp    %ebx,%eax
  jg     L274
  mov    %rax,0x70(%rsp)
L217:
  mov    0xf0(%rsp),%rax
  mov    0x110(%rsp),%ebx
  movslq (%rax),%rax
  lea    -0x2(%rbx),%esi
  shl    $0x2,%rax
  jmp    L367
L153:
  mov    0x108(%rsp),%rax
  mov    (%rax),%r13d
  test   %r13d,%r13d
  jne    L274
  mov    0x100(%rsp),%rax
  mov    0x4(%rax),%eax
  test   %eax,%eax
  jne    L274
  jmp    L54
L423:
  mov    0x108(%rsp),%rax
  mov    0x4(%rax),%ecx
  test   %ecx,%ecx
  jne    L217
  jmp    L274
```

tool_calls: name: disassemble_data
arguments: data_label: D9
type: byte[4]

tool: {"D9": [0x00,0x00,0x00,0x80]}

assistant: ```c
void asg_pstep3d(float ***restrict bulk, float ***restrict p0, float ***restrict p1, float ***restrict p2, float ***restrict v0, float ***restrict v1, float ***restrict v2, float **restrict ep, float **restrict epp, float *restrict sdiv, int *gsc, int *gec, int *lbc, int *rbc, int maxoff, float **restrict c) {
  int i0, i1, i2;
  int ioff;
  for (i2 = gsc[2]; i2 <= gec[2]; i2++) {
    for (i1 = gsc[1]; i1 <= gec[1]; i1++) {
      for (i0 = gsc[0]; i0 <= gec[0]; i0++)
        sdiv[i0] = 0.0f;
      for (ioff = 0; ioff < maxoff; ioff++) {
        for (i0 = gsc[0]; i0 <= gec[0]; i0++) {
          sdiv[i0] += (c[0][ioff] * (v0[i2][i1][i0 + ioff] - v0[i2][i1][i0 - ioff - 1]) + c[1][ioff] * (v1[i2][i1 + ioff][i0] - v1[i2][i1 - ioff - 1][i0]) + c[2][ioff] * (v2[i2 + ioff][i1][i0] - v2[i2 - ioff - 1][i1][i0]));
        }
      }
      for (i0 = gsc[0]; i0 <= gec[0]; i0++) {
        p0[i2][i1][i0] = (p0[i2][i1][i0] * ep[0][i0] - bulk[i2][i1][i0] * sdiv[i0]) * epp[0][i0];
        p1[i2][i1][i0] = (p1[i2][i1][i0] * ep[1][i1] - bulk[i2][i1][i0] * sdiv[i0]) * epp[1][i1];
        p2[i2][i1][i0] = (p2[i2][i1][i0] * ep[2][i2] - bulk[i2][i1][i0] * sdiv[i0]) * epp[2][i2];
      }
    }
  }
  if (lbc[0]) {
    for (i2 = gsc[2]; i2 <= gec[2]; i2++) {
      for (i1 = gsc[1]; i1 <= gec[1]; i1++) {
        p0[i2][i1][gsc[0] - 1] = 0.0f;
        for (ioff = 1; ioff < maxoff; ioff++) {
          p0[i2][i1][gsc[0] - ioff - 1] = -p0[i2][i1][gsc[0] + ioff - 1];
        }
      }
    }
  }
  if (rbc[0]) {
    for (i2 = gsc[2]; i2 <= gec[2]; i2++) {
      for (i1 = gsc[1]; i1 <= gec[1]; i1++) {
        p0[i2][i1][gec[0] + 1] = 0.0f;
        for (ioff = 1; ioff < maxoff; ioff++) {
          p0[i2][i1][gec[0] + ioff + 1] = -p0[i2][i1][gec[0] - ioff + 1];
        }
      }
    }
  }
  if (lbc[1]) {
    for (i2 = gsc[2]; i2 <= gec[2]; i2++) {
      for (i0 = gsc[0]; i0 <= gsc[0]; i0++) {
        p1[i2][gsc[1] - 1][i0] = 0.0f;
        for (ioff = 1; ioff < maxoff; ioff++) {
          p1[i2][gsc[1] - ioff - 1][i0] = -p1[i2][gsc[1] + ioff - 1][i0];
        }
      }
    }
  }
  if (rbc[1]) {
    for (i2 = gsc[2]; i2 <= gec[2]; i2++) {
      for (i0 = gsc[0]; i0 <= gsc[0]; i0++) {
        p1[i2][gec[1] + 1][i0] = 0.0f;
        for (ioff = 1; ioff < maxoff; ioff++) {
          p1[i2][gec[1] + ioff + 1][i0] = -p1[i2][gec[1] - ioff + 1][i0];
        }
      }
    }
  }
  if (lbc[2]) {
    for (i1 = gsc[1]; i1 <= gec[1]; i1++) {
      for (i0 = gsc[0]; i0 <= gsc[0]; i0++) {
        p2[gsc[2] - 1][i1][i0] = 0.0f;
        for (ioff = 1; ioff < maxoff; ioff++) {
          p2[gsc[2] - ioff - 1][i1][i0] = -p2[gsc[2] + ioff - 1][i1][i0];
        }
      }
    }
  }
  if (rbc[2]) {
    for (i1 = gsc[1]; i1 <= gec[1]; i1++) {
      for (i0 = gsc[0]; i0 <= gsc[0]; i0++) {
        p2[gec[2] + 1][i1][i0] = 0.0f;
        for (ioff = 1; ioff < maxoff; ioff++) {
          p2[gec[2] + ioff + 1][i1][i0] = -p2[gec[2] - ioff + 1][i1][i0];
        }
      }
    }
  }
}
```